<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:old.nabble.com,2006:forum-196</id>
	<title>Nabble - Apache Portals</title>
	<updated>2009-12-18T12:06:04Z</updated>
	<link rel="self" type="application/atom+xml" href="http://old.nabble.com/Apache-Portals-f196.xml" />
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Apache-Portals-f196.html" />
	<subtitle type="html">Apache Portals is a collaborative software development project dedicated to providing robust, full-featured, commercial-quality, and freely available Portal related software on a wide variety of platforms and programming languages. Apache Portals home is &lt;a href=&quot;http://portals.apache.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt;.</subtitle>
	
<entry>
	<id>tag:old.nabble.com,2006:post-26848977</id>
	<title>svn commit: r892363 - in /portals/site/jetspeed/jetspeed-2.2/jetspeed-guide-dev/src/site: site.xml xdoc/guide-rest-api.xml</title>
	<published>2009-12-18T12:06:04Z</published>
	<updated>2009-12-18T12:06:04Z</updated>
	<author>
		<name>woonsan</name>
	</author>
	<content type="html">Author: woonsan
&lt;br&gt;Date: Fri Dec 18 20:06:02 2009
&lt;br&gt;New Revision: 892363
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=892363&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=892363&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;JS2-1087: Adding initial documentation for Jetspeed REST API.
&lt;br&gt;To-dos: complete all apis
&lt;br&gt;&lt;br&gt;Added:
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/site/jetspeed/jetspeed-2.2/jetspeed-guide-dev/src/site/xdoc/guide-rest-api.xml &amp;nbsp; (with props)
&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/site/jetspeed/jetspeed-2.2/jetspeed-guide-dev/src/site/site.xml
&lt;br&gt;&lt;br&gt;Modified: portals/site/jetspeed/jetspeed-2.2/jetspeed-guide-dev/src/site/site.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/site/jetspeed/jetspeed-2.2/jetspeed-guide-dev/src/site/site.xml?rev=892363&amp;r1=892362&amp;r2=892363&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/site/jetspeed/jetspeed-2.2/jetspeed-guide-dev/src/site/site.xml?rev=892363&amp;r1=892362&amp;r2=892363&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/site/jetspeed/jetspeed-2.2/jetspeed-guide-dev/src/site/site.xml (original)
&lt;br&gt;+++ portals/site/jetspeed/jetspeed-2.2/jetspeed-guide-dev/src/site/site.xml Fri Dec 18 20:06:02 2009
&lt;br&gt;@@ -95,6 +95,7 @@
&lt;br&gt;&amp;nbsp;	&amp;lt;menu name=&amp;quot;APIs&amp;quot; &amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;item name=&amp;quot;Jetspeed Java API&amp;quot; href=&amp;quot;../apidocs/jetspeed-api/index.html&amp;quot; /&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;item name=&amp;quot;Jetspeed AJAX API&amp;quot; href=&amp;quot;guide-ajax-api.html&amp;quot; /&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;item name=&amp;quot;Jetspeed REST API&amp;quot; href=&amp;quot;guide-rest-api.html&amp;quot; /&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;item name=&amp;quot;Full Javadocs&amp;quot; href=&amp;quot;../apidocs/index.html&amp;quot; /&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 		
&lt;br&gt;&amp;nbsp;	&amp;lt;/menu&amp;gt;
&lt;br&gt;&amp;nbsp;	
&lt;br&gt;&lt;br&gt;Added: portals/site/jetspeed/jetspeed-2.2/jetspeed-guide-dev/src/site/xdoc/guide-rest-api.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/site/jetspeed/jetspeed-2.2/jetspeed-guide-dev/src/site/xdoc/guide-rest-api.xml?rev=892363&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/site/jetspeed/jetspeed-2.2/jetspeed-guide-dev/src/site/xdoc/guide-rest-api.xml?rev=892363&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/site/jetspeed/jetspeed-2.2/jetspeed-guide-dev/src/site/xdoc/guide-rest-api.xml (added)
&lt;br&gt;+++ portals/site/jetspeed/jetspeed-2.2/jetspeed-guide-dev/src/site/xdoc/guide-rest-api.xml Fri Dec 18 20:06:02 2009
&lt;br&gt;@@ -0,0 +1,321 @@
&lt;br&gt;+&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;
&lt;br&gt;+&amp;lt;!--
&lt;br&gt;+Licensed to the Apache Software Foundation (ASF) under one or more
&lt;br&gt;+contributor license agreements. &amp;nbsp;See the NOTICE file distributed with
&lt;br&gt;+this work for additional information regarding copyright ownership.
&lt;br&gt;+The ASF licenses this file to You under the Apache License, Version 2.0
&lt;br&gt;+(the &amp;quot;License&amp;quot;); you may not use this file except in compliance with
&lt;br&gt;+the License. &amp;nbsp;You may obtain a copy of the License at
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+
&lt;br&gt;+Unless required by applicable law or agreed to in writing, software
&lt;br&gt;+distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&lt;br&gt;+See the License for the specific language governing permissions and
&lt;br&gt;+limitations under the License.
&lt;br&gt;+--&amp;gt;
&lt;br&gt;+&amp;lt;document&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;properties&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;title&amp;gt;REST API&amp;lt;/title&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;subtitle&amp;gt;Documentation for Jetspeed REST API&amp;lt;/subtitle&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;authors&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;person name=&amp;quot;Woonsan Ko&amp;quot; email=&amp;quot;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26848977&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;woonsan@...&lt;/a&gt;&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/authors&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/properties&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;body&amp;gt;
&lt;br&gt;+&amp;lt;section name=&amp;quot;Jetspeed REST API Overview&amp;quot;&amp;gt;
&lt;br&gt;+&amp;lt;p&amp;gt;
&lt;br&gt;+The Jetspeed REST API is an RESTful web services for clients (including AJAX clients) for making HTTP requests to Jetspeed services.
&lt;br&gt;+&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p&amp;gt;
&lt;br&gt;+The URLs for the Jetspeed REST API starts with the following:
&lt;br&gt;+&amp;lt;source&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+&lt;a href=&quot;http://hostname/contextname/services/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://hostname/contextname/services/&lt;/a&gt;&lt;br&gt;+]]&amp;gt;&amp;lt;/source&amp;gt;
&lt;br&gt;+&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;p&amp;gt;
&lt;br&gt;+Typical use cases:
&lt;br&gt;+&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;ul&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Page Customization and Portlet Placement&amp;lt;/b&amp;gt; - To move, copy, add, or remove portlets on a page&amp;lt;/li&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Layout Selection&amp;lt;/b&amp;gt; - change the layout (number of rows and columns, size of columns) on a page&amp;lt;/li&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Theme and Decorator Selection&amp;lt;/b&amp;gt; - change the page theme and portlet decorators on a page.&amp;lt;/li&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Portlet Selectors&amp;lt;/b&amp;gt; - provide a select-list of portlets to the end user&amp;lt;/li&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Security Configuration&amp;lt;/b&amp;gt; - configure the security constraints or policy on a resource (page, portlet, folder, link, fragment), or portal wide&amp;lt;/li&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Menu Configuration&amp;lt;/b&amp;gt; - create and edit menus for the Jetspeed Site&amp;lt;/li&amp;gt;			
&lt;br&gt;+	&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;General Administration&amp;lt;/b&amp;gt; - all use cases for general administration have not yet been explored.&amp;lt;/li&amp;gt;
&lt;br&gt;+&amp;lt;/ul&amp;gt;
&lt;br&gt;+&amp;lt;subsection name='Secured Access'&amp;gt;
&lt;br&gt;+&amp;lt;p&amp;gt;
&lt;br&gt;+All Jetspeed REST API requests run through
&lt;br&gt;+a standard Jetspeed &amp;lt;a href='guide-pipeline.html'&amp;gt;Pipeline&amp;lt;/a&amp;gt; request. This means that you can configure your web
&lt;br&gt;+request with the usual array of Jetspeed components. The default REST services pipeline secures
&lt;br&gt;+access to all requests. Each service may have its own security constraints. All
&lt;br&gt;+requests made to a page will use the declarative security constraints configured for that page.
&lt;br&gt;+REST request actions are enforced under edit or view mode, depending on the nature of the action.
&lt;br&gt;+&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;/subsection&amp;gt;
&lt;br&gt;+&amp;lt;subsection name='Flexible Message Media Types for Message Producers and Consumers'&amp;gt;
&lt;br&gt;+&amp;lt;p&amp;gt;
&lt;br&gt;+All Jetspeed REST API support dual Message Media Types for Message producers and consumers: 'application/json' and 'application/xml'
&lt;br&gt;+with help of the underlying &amp;lt;a href=&amp;quot;&lt;a href=&quot;http://cxf.apache.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cxf.apache.org&lt;/a&gt;&amp;quot;&amp;gt;Apache CXF&amp;lt;/a&amp;gt; JAX-RS Server.
&lt;br&gt;+Typically, web client applications can use JSON marshaling/unmarshaling by adding '_type=json' parameter in the request URLs.
&lt;br&gt;+If the parameter is '_type=xml', then the messages are XML messages.
&lt;br&gt;+If the '_type' parameter is not set by the client, the Jetspeed REST API read the 'Accept' HTTP request header to decide
&lt;br&gt;+which is proper for the web client. Please see the documents of Apache CXF for details.
&lt;br&gt;+&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;/subsection&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;+&amp;lt;subsection name='XML Schema Support'&amp;gt;
&lt;br&gt;+&amp;lt;p&amp;gt;
&lt;br&gt;+You can also retrieve XML Schema document for each service simply by adding '?_wadl' query string.
&lt;br&gt;+Apache CXF JAX-RS server, on which Jetspeed REST API depends, generates the XML Schema document for the service automatically.
&lt;br&gt;+For example, you can request the following URL to retrieve the XML Schema document for 'Get Portlet Application' service of 'Portlet Registry Service'.
&lt;br&gt;+&amp;lt;source&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+&lt;a href=&quot;http://localhost:8080/jetspeed/services/portletregistry/application/demo/?_wadl&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:8080/jetspeed/services/portletregistry/application/demo/?_wadl&lt;/a&gt;&lt;br&gt;+]]&amp;gt;&amp;lt;/source&amp;gt;
&lt;br&gt;+&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;/subsection&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;+&amp;lt;/section&amp;gt;	 &amp;nbsp;
&lt;br&gt;+&amp;lt;section name='Portlet Registry Service'&amp;gt;
&lt;br&gt;+&amp;lt;p&amp;gt;
&lt;br&gt;+The Portlet Registry Service is a HTTP request-based API, communicating over a simple REST (Representational State Transfer) protocol,
&lt;br&gt;+providing information and management functionality on portlet applications and portlet definitions.
&lt;br&gt;+This service is accessed over HTTP via the &amp;quot;/services/portletregistry&amp;quot; path on the portal URL:
&lt;br&gt;+&amp;lt;source&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+&lt;a href=&quot;http://hostname/contextname/services/portletregistry/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://hostname/contextname/services/portletregistry/&lt;/a&gt;&lt;br&gt;+]]&amp;gt;&amp;lt;/source&amp;gt;
&lt;br&gt;+&amp;lt;/p&amp;gt;
&lt;br&gt;+
&lt;br&gt;+&amp;lt;subsection name='Get Portlet Applications'&amp;gt;
&lt;br&gt;+&amp;lt;table&amp;gt;	
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td&amp;gt;Entry path&amp;lt;/td&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td&amp;gt;/application/&amp;lt;/td&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td&amp;gt;Description:&amp;lt;/td&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td&amp;gt;Get portlet applications based on the path parameter for application name.&amp;lt;/td&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td&amp;gt;Parameters&amp;lt;/td&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;table&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;			&amp;lt;tr&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;				&amp;lt;th&amp;gt;Type&amp;lt;/th&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;th&amp;gt;Name&amp;lt;/th&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;th&amp;gt;Example value&amp;lt;/th&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;			&amp;lt;/tr&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;			&amp;lt;tr&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td&amp;gt;PATH&amp;lt;/td&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td&amp;gt;name&amp;lt;/td&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td&amp;gt;/demo/&amp;lt;/td&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Portlet application name.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;If the portlet application name path parameter is not provided, then
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;all portlet applications are retrieved.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/td&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;			&amp;lt;/tr&amp;gt;			
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td&amp;gt;QUERY&amp;lt;/td&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td&amp;gt;query&amp;lt;/td&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td&amp;gt;tool&amp;lt;/td&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td&amp;gt;Search query string to filter the results.&amp;lt;/td&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td&amp;gt;QUERY&amp;lt;/td&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td&amp;gt;begin&amp;lt;/td&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td&amp;gt;The begin index of the page to be selected from the result.&amp;lt;/td&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td&amp;gt;QUERY&amp;lt;/td&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td&amp;gt;max&amp;lt;/td&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td&amp;gt;10&amp;lt;/td&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td&amp;gt;The maximum page size to be selected from the result.&amp;lt;/td&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;		&amp;lt;/table&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/td&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td&amp;gt;REST API examples:&amp;lt;/td&amp;gt;
&lt;br&gt;+		&amp;lt;td&amp;gt;
&lt;br&gt;+&amp;lt;source&amp;gt;&amp;lt;![CDATA[			
&lt;br&gt;+&lt;a href=&quot;http://localhost:8080/jetspeed/services/portletregistry/application/demo/?_type=json&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:8080/jetspeed/services/portletregistry/application/demo/?_type=json&lt;/a&gt;&lt;br&gt;+
&lt;br&gt;+&lt;a href=&quot;http://localhost:8080/jetspeed/services/portletregistry/application/?_type=json&amp;query=demo&amp;begin=0&amp;max=10&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:8080/jetspeed/services/portletregistry/application/?_type=json&amp;query=demo&amp;begin=0&amp;max=10&lt;/a&gt;&lt;br&gt;+]]&amp;gt;&amp;lt;/source&amp;gt;			
&lt;br&gt;+		&amp;lt;/td&amp;gt; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+	&amp;lt;/tr&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td&amp;gt;JSON Response Example:&amp;lt;/td&amp;gt;
&lt;br&gt;+		&amp;lt;td&amp;gt;
&lt;br&gt;+&amp;lt;source&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+{
&lt;br&gt;+ &amp;nbsp;&amp;quot;beginIndex&amp;quot;:-1,
&lt;br&gt;+ &amp;nbsp;&amp;quot;totalSize&amp;quot;:1,
&lt;br&gt;+ &amp;nbsp;&amp;quot;applications&amp;quot;:[
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;name&amp;quot;:&amp;quot;demo&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;contextPath&amp;quot;:&amp;quot;/demo&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;applicationType&amp;quot;:0,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;defaultNamespace&amp;quot;:&amp;quot;&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;revision&amp;quot;:2,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;checksum&amp;quot;:2832348922,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;displayNames&amp;quot;:[
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;value&amp;quot;:&amp;quot;Demoportlets&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;lang&amp;quot;:&amp;quot;en&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;localeString&amp;quot;:&amp;quot;en&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;],
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;descriptions&amp;quot;:[
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;value&amp;quot;:&amp;quot;Demo Portlets Applications&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;lang&amp;quot;:&amp;quot;en&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;localeString&amp;quot;:&amp;quot;en&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;],
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;metadata&amp;quot;:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;fields&amp;quot;:[
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;name&amp;quot;:&amp;quot;title&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;value&amp;quot;:&amp;quot;Title 1&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;localeString&amp;quot;:&amp;quot;en&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;},
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;name&amp;quot;:&amp;quot;title&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;value&amp;quot;:&amp;quot;Eng Title&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;localeString&amp;quot;:&amp;quot;en&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;]
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;},
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;containerRuntimeOptions&amp;quot;:[]
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp;]
&lt;br&gt;+}
&lt;br&gt;+]]&amp;gt;&amp;lt;/source&amp;gt;
&lt;br&gt;+			
&lt;br&gt;+		&amp;lt;/td&amp;gt; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+	&amp;lt;/tr&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td&amp;gt;XML Response Example:&amp;lt;/td&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td&amp;gt;
&lt;br&gt;+&amp;lt;source&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot;?&amp;gt;
&lt;br&gt;+&amp;lt;data&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;beginIndex&amp;gt;-1&amp;lt;/beginIndex&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;totalSize&amp;gt;1&amp;lt;/totalSize&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;applications&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;application&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;applicationType&amp;gt;0&amp;lt;/applicationType&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;checksum&amp;gt;2832348922&amp;lt;/checksum&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;containerRuntimeOptions/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;contextPath&amp;gt;/demo&amp;lt;/contextPath&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;defaultNamespace/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;descriptions&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;lang&amp;gt;en&amp;lt;/lang&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;localeString&amp;gt;en&amp;lt;/localeString&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;value&amp;gt;Demo Portlets Applications&amp;lt;/value&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/descriptions&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;displayNames&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;displayName&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;lang&amp;gt;en&amp;lt;/lang&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;localeString&amp;gt;en&amp;lt;/localeString&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;value&amp;gt;Demoportlets&amp;lt;/value&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/displayName&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/displayNames&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;metadata&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;fields&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;field&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;localeString&amp;gt;en&amp;lt;/localeString&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;title&amp;lt;/name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;value&amp;gt;Title 1&amp;lt;/value&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/field&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;field&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;localeString&amp;gt;en&amp;lt;/localeString&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;title&amp;lt;/name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;value&amp;gt;Eng Title&amp;lt;/value&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/field&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/fields&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/metadata&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;demo&amp;lt;/name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;revision&amp;gt;2&amp;lt;/revision&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/application&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/applications&amp;gt;
&lt;br&gt;+&amp;lt;/data&amp;gt;
&lt;br&gt;+]]&amp;gt;&amp;lt;/source&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/td&amp;gt; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt;
&lt;br&gt;+&amp;lt;/table&amp;gt;
&lt;br&gt;+&amp;lt;/subsection&amp;gt;
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+
&lt;br&gt;+&amp;lt;/section&amp;gt;
&lt;br&gt;+
&lt;br&gt;+&amp;lt;section name='Spring Assembly'&amp;gt;
&lt;br&gt;+&amp;lt;p&amp;gt;
&lt;br&gt;+The Jetspeed REST Services are configured in the Spring Assembly.
&lt;br&gt;+Here is the core part of the Spring Assembly. Each service component is configured in the Ajax Service.
&lt;br&gt;+&amp;lt;/p&amp;gt;
&lt;br&gt;+&amp;lt;source&amp;gt;&amp;lt;![CDATA[
&lt;br&gt;+ &amp;nbsp;&amp;lt;!-- 
&lt;br&gt;+ &amp;nbsp;The internal server factory. 
&lt;br&gt;+ &amp;nbsp;Each JAX-RS service component is registered by &amp;quot;resourceProvider&amp;quot; property. 
&lt;br&gt;+ &amp;nbsp;--&amp;gt;
&lt;br&gt;+ &amp;nbsp;
&lt;br&gt;+ &amp;nbsp;&amp;lt;bean id=&amp;quot;cxfJaxrsServerFactoryBean&amp;quot; class=&amp;quot;org.apache.cxf.jaxrs.JAXRSServerFactoryBean&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;meta key=&amp;quot;j2:cat&amp;quot; value=&amp;quot;default&amp;quot; /&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;address&amp;quot; value=&amp;quot;/&amp;quot; /&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;destinationFactory&amp;quot; ref=&amp;quot;cxfDestinationFactory&amp;quot; /&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;providers&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;list&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;ref bean=&amp;quot;jaxrsJsonProvider&amp;quot; /&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/list&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/property&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;resourceProviders&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;list&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;!-- PortletRegistryService component reference --&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;bean class=&amp;quot;org.apache.cxf.jaxrs.lifecycle.SingletonResourceProvider&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;meta key=&amp;quot;j2:cat&amp;quot; value=&amp;quot;default&amp;quot; /&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;constructor-arg ref=&amp;quot;jaxrsPortletRegistryService&amp;quot; /&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/bean&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;!-- PageLayoutService component reference --&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;bean class=&amp;quot;org.apache.cxf.jaxrs.lifecycle.SingletonResourceProvider&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;meta key=&amp;quot;j2:cat&amp;quot; value=&amp;quot;default&amp;quot; /&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;constructor-arg ref=&amp;quot;jaxrsPageLayoutService&amp;quot; /&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/bean&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/list&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/property&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/bean&amp;gt;
&lt;br&gt;+ &amp;nbsp;
&lt;br&gt;+ &amp;nbsp;&amp;lt;!-- Portlet Registry JAX-RS Service --&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;bean id=&amp;quot;jaxrsPortletRegistryService&amp;quot; class=&amp;quot;org.apache.jetspeed.services.rest.PortletRegistryService&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;meta key=&amp;quot;j2:cat&amp;quot; value=&amp;quot;default&amp;quot; /&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;constructor-arg ref=&amp;quot;org.apache.jetspeed.security.SecurityAccessController&amp;quot; /&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;constructor-arg ref=&amp;quot;org.apache.jetspeed.components.portletregistry.PortletRegistry&amp;quot; /&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;constructor-arg ref=&amp;quot;org.apache.jetspeed.search.SearchEngine&amp;quot; /&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/bean&amp;gt;
&lt;br&gt;+ &amp;nbsp;
&lt;br&gt;+ &amp;nbsp;&amp;lt;!-- Portal Page Management JAX-RS Service --&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;bean id=&amp;quot;jaxrsPageLayoutService&amp;quot; class=&amp;quot;org.apache.jetspeed.services.rest.PageLayoutService&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;meta key=&amp;quot;j2:cat&amp;quot; value=&amp;quot;default&amp;quot; /&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;constructor-arg ref=&amp;quot;org.apache.jetspeed.layout.PageLayoutComponent&amp;quot; /&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;constructor-arg ref=&amp;quot;org.apache.jetspeed.components.portletregistry.PortletRegistry&amp;quot; /&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;constructor-arg ref=&amp;quot;PortletActionSecurityBehavior&amp;quot; /&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/bean&amp;gt;
&lt;br&gt;+]]&amp;gt;&amp;lt;/source&amp;gt;
&lt;br&gt;+		
&lt;br&gt;+&amp;lt;/section&amp;gt;	
&lt;br&gt;+&amp;lt;/body&amp;gt;
&lt;br&gt;+&amp;lt;/document&amp;gt;
&lt;br&gt;+
&lt;br&gt;&lt;br&gt;Propchange: portals/site/jetspeed/jetspeed-2.2/jetspeed-guide-dev/src/site/xdoc/guide-rest-api.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: portals/site/jetspeed/jetspeed-2.2/jetspeed-guide-dev/src/site/xdoc/guide-rest-api.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Id
&lt;br&gt;&lt;br&gt;Propchange: portals/site/jetspeed/jetspeed-2.2/jetspeed-guide-dev/src/site/xdoc/guide-rest-api.xml
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = text/plain
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Apache-Portals---General-f197.html&quot; embed=&quot;fixTarget[197]&quot; target=&quot;_top&quot; &gt;Apache Portals - General&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r892363---in--portals-site-jetspeed-jetspeed-2.2-jetspeed-guide-dev-src-site%3A-site.xml-xdoc-guide-rest-api.xml-tp26848977p26848977.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26845554</id>
	<title>svn commit: r892288 - in /portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp: WEB-INF/view/toolbox/toolbox.jsp images/preview/preview-na.png</title>
	<published>2009-12-18T08:00:35Z</published>
	<updated>2009-12-18T08:00:35Z</updated>
	<author>
		<name>woonsan</name>
	</author>
	<content type="html">Author: woonsan
&lt;br&gt;Date: Fri Dec 18 16:00:33 2009
&lt;br&gt;New Revision: 892288
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=892288&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=892288&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;JS2-1057: Fixing preview window title
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/images/preview/preview-na.png
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp?rev=892288&amp;r1=892287&amp;r2=892288&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp?rev=892288&amp;r1=892287&amp;r2=892288&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp (original)
&lt;br&gt;+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp Fri Dec 18 16:00:33 2009
&lt;br&gt;@@ -408,7 +408,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var nameNode = clone.one('div');
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;nameNode.setContent(def.displayNames[0].value);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var portletDisplayName = def.displayNames[0].value;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;nameNode.setContent(portletDisplayName);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;c:choose&amp;gt;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;c:when test=&amp;quot;${editAccess}&amp;quot;&amp;gt;
&lt;br&gt;@@ -422,7 +423,9 @@
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/c:choose&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var previewLink = clone.one(&amp;quot;[name='preview']&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Y.Node.getDOMNode(previewLink).setAttribute(&amp;quot;portletUniqueName&amp;quot;, def.uniqueName);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var previewLinkNode = Y.Node.getDOMNode(previewLink);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;previewLinkNode.setAttribute(&amp;quot;portletUniqueName&amp;quot;, def.uniqueName);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;previewLinkNode.setAttribute(&amp;quot;portletDisplayName&amp;quot;, portletDisplayName);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;previewLink.on(&amp;quot;click&amp;quot;, previewPortlet);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;clone.set(&amp;quot;id&amp;quot;, &amp;quot;&amp;lt;portlet:namespace/&amp;gt;portletItem-&amp;quot; + def.uniqueName);
&lt;br&gt;@@ -557,7 +560,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;};
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;var onPreviewPortletComplete = function(id, o, args) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var point = args.complete;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var point = args.complete[0];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var portletDisplayName = args.complete[1];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var previewNode = Y.Node.getDOMNode(Y.Node.one(&amp;quot;#&amp;lt;portlet:namespace/&amp;gt;previewOverlay&amp;quot;));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var windowWidth = window.innerWidth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var windowHeight = window.innerHeight;
&lt;br&gt;@@ -578,7 +582,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;&amp;lt;div class='PContentBorder'&amp;gt;&amp;lt;div class='PContent'&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;quot; +
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;&amp;lt;/div&amp;gt;&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;previewPortletWindow.one(&amp;quot;.PTitleContent&amp;quot;).setContent(&amp;quot;PickANumber&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;previewPortletWindow.one(&amp;quot;.PTitleContent&amp;quot;).setContent(portletDisplayName);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;previewPortletWindow.one(&amp;quot;.PContent&amp;quot;).setContent(o.responseText);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;previewOverlay.set(&amp;quot;bodyContent&amp;quot;, previewPortletWindow);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;previewOverlay.render();
&lt;br&gt;@@ -599,13 +603,14 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;var previewPortlet = function(e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var a = Y.Node.getDOMNode(e.target);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var portletUniqueName = a.getAttribute(&amp;quot;portletUniqueName&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var portletDisplayName = a.getAttribute(&amp;quot;portletDisplayName&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (portletUniqueName) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (previewOverlay) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;previewOverlay.hide();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var point = [ e.pageX, e.pageY ];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var uri = &amp;quot;${portalContextPath}/portlet/?mode=preview&amp;portlet=&amp;quot; + portletUniqueName + &amp;quot;&amp;entity=&amp;quot; + portletUniqueName;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var request = Y.io(uri, { on: { complete: onPreviewPortletComplete }, arguments: { complete: point } });
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var request = Y.io(uri, { on: { complete: onPreviewPortletComplete }, arguments: { complete: [ point, portletDisplayName ] } });
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e.halt();
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/images/preview/preview-na.png
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/images/preview/preview-na.png?rev=892288&amp;r1=892287&amp;r2=892288&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/images/preview/preview-na.png?rev=892288&amp;r1=892287&amp;r2=892288&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;Binary files - no diff available.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26845554&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26845554&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Jetspeed---Dev-f199.html&quot; embed=&quot;fixTarget[199]&quot; target=&quot;_top&quot; &gt;Jetspeed - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r892288---in--portals-jetspeed-2-applications-j2-admin-trunk-src-main-webapp%3A-WEB-INF-view-toolbox-toolbox.jsp-images-preview-preview-na.png-tp26845554p26845554.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26844768</id>
	<title>svn commit: r892269 - /portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp</title>
	<published>2009-12-18T07:06:21Z</published>
	<updated>2009-12-18T07:06:21Z</updated>
	<author>
		<name>woonsan</name>
	</author>
	<content type="html">Author: woonsan
&lt;br&gt;Date: Fri Dec 18 15:06:19 2009
&lt;br&gt;New Revision: 892269
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=892269&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=892269&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;JS2-1057: Adding animation effect to preview window
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp?rev=892269&amp;r1=892268&amp;r2=892269&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp?rev=892269&amp;r1=892268&amp;r2=892269&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp (original)
&lt;br&gt;+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp Fri Dec 18 15:06:19 2009
&lt;br&gt;@@ -186,14 +186,105 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;/table&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-&amp;lt;div id=&amp;quot;&amp;lt;portlet:namespace/&amp;gt;previewPanel&amp;quot; style=&amp;quot;BACKGROUND: #eee; BORDER: lightgrey solid 1px; POSITION: absolute; Z-INDEX: 1000; VISIBILITY: hidden&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp;&amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;
&lt;br&gt;- &amp;nbsp;&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;&amp;lt;fmt:message key=&amp;quot;toolbox.label.close&amp;quot;/&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;
&lt;br&gt;+&amp;lt;div id=&amp;quot;&amp;lt;portlet:namespace/&amp;gt;previewOverlay&amp;quot; style=&amp;quot;BACKGROUND-COLOR: #eee; BORDER-LEFT: #fff solid 2px; BORDER-TOP: #fff solid 2px; BORDER-RIGHT: #aaa solid 2px; BORDER-BOTTOM: #aaa solid 2px; DISPLAY: none; PADDING: 5px&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;div class=&amp;quot;yui-widget-hd&amp;quot;&amp;gt;&amp;lt;h2&amp;gt;&amp;lt;fmt:message key=&amp;quot;toolbox.label.preview&amp;quot;/&amp;gt;&amp;lt;/h2&amp;gt;&amp;lt;/div&amp;gt;
&lt;br&gt;+	&amp;lt;div class=&amp;quot;yui-widget-bd&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;div class=&amp;quot;yui-widget-ft&amp;quot; align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;a id=&amp;quot;&amp;lt;portlet:namespace/&amp;gt;previewOverlayClose&amp;quot; href=&amp;quot;#&amp;quot;&amp;gt;&amp;lt;fmt:message key=&amp;quot;toolbox.label.close&amp;quot;/&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;/div&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;
&lt;br&gt;-YUI().use('jetui-portal', 'io', 'json', 'node', 'cookie', function(Y) {
&lt;br&gt;-
&lt;br&gt;+YUI().use('jetui-portal', 'io', 'json', 'node', 'cookie', 'overlay', 'anim', 'plugin', function(Y) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;var previewOverlay = null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;function AnimPlugin(config) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AnimPlugin.superclass.constructor.apply(this, arguments);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;AnimPlugin.NS = &amp;quot;fx&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;AnimPlugin.NAME = &amp;quot;animPlugin&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;AnimPlugin.ATTRS = {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;duration : { value: 0.1 },
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;animVisible : {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;valueFn : function() {
&lt;br&gt;+		 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var host = this.get(&amp;quot;host&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var boundingBox = host.get(&amp;quot;boundingBox&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var anim = new Y.Anim({
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;node: boundingBox,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;to: { opacity: 1 },
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;duration: this.get(&amp;quot;duration&amp;quot;)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;});
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!host.get(&amp;quot;visible&amp;quot;)) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boundingBox.setStyle(&amp;quot;opacity&amp;quot;, 0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;anim.on(&amp;quot;destroy&amp;quot;, function() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (Y.UA.ie) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.get(&amp;quot;node&amp;quot;).setStyle(&amp;quot;opacity&amp;quot;, 1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.get(&amp;quot;node&amp;quot;).setStyle(&amp;quot;opacity&amp;quot;, &amp;quot;&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;});
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return anim;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;},
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;animHidden : {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;valueFn : function() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new Y.Anim({
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;node: this.get(&amp;quot;host&amp;quot;).get(&amp;quot;boundingBox&amp;quot;),
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;to: { opacity: 0 },
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;duration: this.get(&amp;quot;duration&amp;quot;)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;});
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Y.extend(AnimPlugin, Y.Plugin.Base, {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;initializer : function(config) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this._bindAnimVisible();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this._bindAnimHidden();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.after(&amp;quot;animVisibleChange&amp;quot;, this._bindAnimVisible);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.after(&amp;quot;animHiddenChange&amp;quot;, this._bindAnimHidden);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.doBefore(&amp;quot;_uiSetVisible&amp;quot;, this._uiAnimSetVisible);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;},
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;destructor : function() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.get(&amp;quot;animVisible&amp;quot;).destroy();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.get(&amp;quot;animHidden&amp;quot;).destroy();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;},
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_uiAnimSetVisible : function(val) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (this.get(&amp;quot;host&amp;quot;).get(&amp;quot;rendered&amp;quot;)) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (val) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.get(&amp;quot;animHidden&amp;quot;).stop();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.get(&amp;quot;animVisible&amp;quot;).run();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.get(&amp;quot;animVisible&amp;quot;).stop();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.get(&amp;quot;animHidden&amp;quot;).run();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new Y.Do.Prevent(&amp;quot;AnimPlugin prevented default show/hide&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;},
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_uiSetVisible : function(val) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var host = this.get(&amp;quot;host&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var hiddenClass = host.getClassName(&amp;quot;hidden&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!val) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;host.get(&amp;quot;boundingBox&amp;quot;).addClass(hiddenClass);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;host.get(&amp;quot;boundingBox&amp;quot;).removeClass(hiddenClass);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;},
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_bindAnimVisible : function() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var animVisible = this.get(&amp;quot;animVisible&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;animVisible.on(&amp;quot;start&amp;quot;, Y.bind(function() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this._uiSetVisible(true);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}, this));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;},
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_bindAnimHidden : function() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var animHidden = this.get(&amp;quot;animHidden&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;animHidden.after(&amp;quot;end&amp;quot;, Y.bind(function() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this._uiSetVisible(false);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}, this));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;});
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;var pagination = {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;portlet : { uri : null, totalSize : 0, pageSize : ${portletPageSize}, beginIndex : 0 },
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -467,37 +558,61 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;var onPreviewPortletComplete = function(id, o, args) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var point = args.complete;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var panel = Y.Node.one(&amp;quot;#&amp;lt;portlet:namespace/&amp;gt;previewPanel&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var subPanels = panel.all(&amp;quot;DIV&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;subPanels.item(0).setContent(o.responseText);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var panelDOMNode = Y.Node.getDOMNode(panel);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var previewNode = Y.Node.getDOMNode(Y.Node.one(&amp;quot;#&amp;lt;portlet:namespace/&amp;gt;previewOverlay&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var windowWidth = window.innerWidth;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var windowHeight = window.innerHeight;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!previewOverlay) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Y.Node.getDOMNode(Y.Node.one(&amp;quot;#&amp;lt;portlet:namespace/&amp;gt;previewOverlay&amp;quot;)).style.display = &amp;quot;&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;previewOverlay = new Y.Overlay({
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;contentBox: &amp;quot;#&amp;lt;portlet:namespace/&amp;gt;previewOverlay&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;xy: [windowWidth, windowHeight],
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;visible: false,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;plugins : [{fn:AnimPlugin, cfg:{duration:0.5}}]
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;});
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var previewPortletWindow = Y.Node.create(
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;&amp;lt;div class='portlet'&amp;gt;&amp;quot; +
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;&amp;lt;div class='PTitle'&amp;gt;&amp;lt;div class='PTitleContent'&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;quot; + 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;&amp;lt;div class='PContentBorder'&amp;gt;&amp;lt;div class='PContent'&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;quot; +
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;&amp;lt;/div&amp;gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;previewPortletWindow.one(&amp;quot;.PTitleContent&amp;quot;).setContent(&amp;quot;PickANumber&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;previewPortletWindow.one(&amp;quot;.PContent&amp;quot;).setContent(o.responseText);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;previewOverlay.set(&amp;quot;bodyContent&amp;quot;, previewPortletWindow);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;previewOverlay.render();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var panelWidth = Math.max(panelDOMNode.offsetWidth, 200);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var panelHeight = Math.max(panelDOMNode.offsetHeight, 150);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var windowWidth = window.innerWidth;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var windowHeight = window.innerHeight;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (point[0] &amp;gt; windowWidth - panelWidth) point[0] = windowWidth - panelWidth;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (point[1] &amp;gt; windowHeight - panelHeight) point[1] = windowHeight - panelHeight;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var offsetWidth = Math.max(200, previewNode.offsetWidth);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var offsetHeight = Math.max(150, previewNode.offsetHeight);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;point[0] += 10;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;point[1] -= 10;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (point[0] &amp;gt; windowWidth - offsetWidth) point[0] = windowWidth - offsetWidth;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (point[1] &amp;gt; windowHeight - offsetHeight) point[1] = windowHeight - offsetHeight;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;panel.setXY(point);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;panelDOMNode.style.visibility = &amp;quot;visible&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;previewOverlay.move(point[0], point[1]);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;previewOverlay.show();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;};
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;var previewPortlet = function(e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var a = Y.Node.getDOMNode(e.target);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var portletUniqueName = a.getAttribute(&amp;quot;portletUniqueName&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (portletUniqueName) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (previewOverlay) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;previewOverlay.hide();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var point = [ e.pageX, e.pageY ];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var uri = &amp;quot;${portalContextPath}/portlet/?mode=preview&amp;portlet=&amp;quot; + portletUniqueName + &amp;quot;&amp;entity=&amp;quot; + portletUniqueName;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var request = Y.io(uri, { on: { complete: onPreviewPortletComplete }, arguments: { complete: [ e.pageX, e.pageY ] } });
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var request = Y.io(uri, { on: { complete: onPreviewPortletComplete }, arguments: { complete: point } });
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e.halt();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;};
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;var closePreviewPanel = function(e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var panel = Y.Node.one(&amp;quot;#&amp;lt;portlet:namespace/&amp;gt;previewPanel&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Y.Node.getDOMNode(panel).style.visibility = &amp;quot;hidden&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;var closePreviewOverlay = function(e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;previewOverlay.hide();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e.halt();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;};
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;@@ -522,6 +637,6 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;switchTab(tabId);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;Y.Node.one(&amp;quot;#&amp;lt;portlet:namespace/&amp;gt;previewPanel&amp;quot;).one(&amp;quot;A&amp;quot;).on(&amp;quot;click&amp;quot;, closePreviewPanel);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Y.Node.one(&amp;quot;#&amp;lt;portlet:namespace/&amp;gt;previewOverlayClose&amp;quot;).on(&amp;quot;click&amp;quot;, closePreviewOverlay);
&lt;br&gt;&amp;nbsp;});
&lt;br&gt;&amp;nbsp;&amp;lt;/script&amp;gt;
&lt;br&gt;\ No newline at end of file
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26844768&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26844768&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Jetspeed---Dev-f199.html&quot; embed=&quot;fixTarget[199]&quot; target=&quot;_top&quot; &gt;Jetspeed - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r892269----portals-jetspeed-2-applications-j2-admin-trunk-src-main-webapp-WEB-INF-view-toolbox-toolbox.jsp-tp26844768p26844768.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26841026</id>
	<title>Re: Building js2 with tests?</title>
	<published>2009-12-18T01:28:19Z</published>
	<updated>2009-12-18T01:28:19Z</updated>
	<author>
		<name>Ate Douma</name>
	</author>
	<content type="html">Woonsan Ko wrote:
&lt;br&gt;&amp;gt; Hi David,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Can you try `mvn install -P init' before doing `mvn clean install'?
&lt;br&gt;&amp;gt; This is documented here. [1]
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; [1] &lt;a href=&quot;http://portals.apache.org/jetspeed-2/buildguide/maven-2-build.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://portals.apache.org/jetspeed-2/buildguide/maven-2-build.html&lt;/a&gt;, &amp;quot;Building and installing Jetspeed Portal&amp;quot;.
&lt;br&gt;&lt;br&gt;In addition to that, and what is causing your problem here is that you'll also need to add org.apache.portals.jetspeed-2 as a Maven 
&lt;br&gt;pluginGroup in your maven settings.xml which is described here:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://portals.apache.org/jetspeed-2/buildguide/index.html#PREREQUISITE:_configuration_of_the_Maven_Settings_pluginGroups&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://portals.apache.org/jetspeed-2/buildguide/index.html#PREREQUISITE:_configuration_of_the_Maven_Settings_pluginGroups&lt;/a&gt;&lt;br&gt;&lt;br&gt;Ate
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Kind regards,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Woonsan
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; ----- Original Message ----
&lt;br&gt;&amp;gt;&amp;gt; From: David Jencks &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26841026&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;david_jencks@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; To: Jetspeed Developers List &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26841026&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Sent: Fri, December 18, 2009 5:51:15 AM
&lt;br&gt;&amp;gt;&amp;gt; Subject: Re: Building js2 with tests?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; On Dec 16, 2009, at 11:32 AM, Randy Watler wrote:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; David,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Here is the sequence I use:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; mvn clean install
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; mvn jetspeed:mvn -Dtarget=testdb
&lt;br&gt;&amp;gt;&amp;gt; I'm mystified. &amp;nbsp;When I try this step the build fails trying to find a 
&lt;br&gt;&amp;gt;&amp;gt; non-existent plugin: (running with -X, tail end of build):
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; [INFO] Searching repository for plugin with prefix: 'jetspeed'.
&lt;br&gt;&amp;gt;&amp;gt; [DEBUG] Loading plugin prefixes from group: org.apache.maven.plugins
&lt;br&gt;&amp;gt;&amp;gt; [DEBUG] Loading plugin prefixes from group: org.codehaus.mojo
&lt;br&gt;&amp;gt;&amp;gt; [DEBUG] maven-jetspeed-plugin: using locally installed snapshot
&lt;br&gt;&amp;gt;&amp;gt; [DEBUG] Artifact not found - using stub model: Unable to determine the latest 
&lt;br&gt;&amp;gt;&amp;gt; version
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; org.apache.maven.plugins:maven-jetspeed-plugin:pom:LATEST
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; [DEBUG] Using defaults for missing POM 
&lt;br&gt;&amp;gt;&amp;gt; org.apache.maven.plugins:maven-jetspeed-plugin:pom:LATEST
&lt;br&gt;&amp;gt;&amp;gt; [DEBUG] maven-jetspeed-plugin: using locally installed snapshot
&lt;br&gt;&amp;gt;&amp;gt; [DEBUG] Artifact not found - using stub model: Unable to determine the release 
&lt;br&gt;&amp;gt;&amp;gt; version
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; org.apache.maven.plugins:maven-jetspeed-plugin:pom:RELEASE
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; [DEBUG] Using defaults for missing POM 
&lt;br&gt;&amp;gt;&amp;gt; org.apache.maven.plugins:maven-jetspeed-plugin:pom:RELEASE
&lt;br&gt;&amp;gt;&amp;gt; [INFO] ------------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; [ERROR] BUILD ERROR
&lt;br&gt;&amp;gt;&amp;gt; [INFO] ------------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; [INFO] The plugin 'org.apache.maven.plugins:maven-jetspeed-plugin' does not 
&lt;br&gt;&amp;gt;&amp;gt; exist or no valid version could be found
&lt;br&gt;&amp;gt;&amp;gt; [INFO] ------------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; [DEBUG] Trace
&lt;br&gt;&amp;gt;&amp;gt; org.apache.maven.lifecycle.LifecycleExecutionException: The plugin 
&lt;br&gt;&amp;gt;&amp;gt; 'org.apache.maven.plugins:maven-jetspeed-plugin' does not exist or no valid 
&lt;br&gt;&amp;gt;&amp;gt; version could be found
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at 
&lt;br&gt;&amp;gt;&amp;gt; org.apache.maven.lifecycle.DefaultLifecycleExecutor.verifyPlugin(DefaultLifecycleExecutor.java:1569)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at 
&lt;br&gt;&amp;gt;&amp;gt; org.apache.maven.lifecycle.DefaultLifecycleExecutor.getMojoDescriptor(DefaultLifecycleExecutor.java:1851)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at 
&lt;br&gt;&amp;gt;&amp;gt; org.apache.maven.lifecycle.DefaultLifecycleExecutor.segmentTaskListByAggregationNeeds(DefaultLifecycleExecutor.java:462)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at 
&lt;br&gt;&amp;gt;&amp;gt; org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:175)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at 
&lt;br&gt;&amp;gt;&amp;gt; sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at 
&lt;br&gt;&amp;gt;&amp;gt; sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at java.lang.reflect.Method.invoke(Method.java:597)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
&lt;br&gt;&amp;gt;&amp;gt; Caused by: org.apache.maven.plugin.version.PluginVersionNotFoundException: The 
&lt;br&gt;&amp;gt;&amp;gt; plugin 'org.apache.maven.plugins:maven-jetspeed-plugin' does not exist or no 
&lt;br&gt;&amp;gt;&amp;gt; valid version could be found
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at 
&lt;br&gt;&amp;gt;&amp;gt; org.apache.maven.plugin.version.DefaultPluginVersionManager.resolvePluginVersion(DefaultPluginVersionManager.java:229)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at 
&lt;br&gt;&amp;gt;&amp;gt; org.apache.maven.plugin.version.DefaultPluginVersionManager.resolvePluginVersion(DefaultPluginVersionManager.java:91)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at 
&lt;br&gt;&amp;gt;&amp;gt; org.apache.maven.plugin.DefaultPluginManager.verifyPlugin(DefaultPluginManager.java:179)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at 
&lt;br&gt;&amp;gt;&amp;gt; org.apache.maven.plugin.DefaultPluginManager.loadPluginDescriptor(DefaultPluginManager.java:1642)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; at 
&lt;br&gt;&amp;gt;&amp;gt; org.apache.maven.lifecycle.DefaultLifecycleExecutor.verifyPlugin(DefaultLifecycleExecutor.java:1540)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; ... 15 more
&lt;br&gt;&amp;gt;&amp;gt; [INFO] ------------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; [INFO] Total time: 4 seconds
&lt;br&gt;&amp;gt;&amp;gt; [INFO] Finished at: Thu Dec 17 20:46:38 PST 2009
&lt;br&gt;&amp;gt;&amp;gt; [INFO] Final Memory: 17M/527M
&lt;br&gt;&amp;gt;&amp;gt; [INFO] ------------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I normally use maven 2.2.1 but tried also with 2.0.9.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Has anyone else seen anything like this? &amp;nbsp;Any clues?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; thanks
&lt;br&gt;&amp;gt;&amp;gt; david jencks
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; mvn -P test test
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; There is also a target to combine the last two steps in the jetspeed plugin, 
&lt;br&gt;&amp;gt;&amp;gt; but I don't use that, (due to general pluginphobia).
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; HTH,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Randy
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; David Jencks wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I'm trying to figure out just how much the pluto DI changes I'm working on 
&lt;br&gt;&amp;gt;&amp;gt; will break js2... so far
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; mvn clean install
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; seems to work, much to my surprise, but if I enable tests I get stuck on some 
&lt;br&gt;&amp;gt;&amp;gt; db tests. &amp;nbsp;I looked around briefly but didn't find any instructions.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; What's the secret?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; So far I've added this to the root pom properties:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; org.apache.derby.jdbc.EmbeddedDriver
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; jdbc:derby:${pom.basedir}/target/testdb;create=true
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; and get errors like this:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ...
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Caused by: ERROR 42X05: Table/View 'CAPABILITY' does not exist.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at org.apache.derby.iapi.error.StandardException.newException(Unknown 
&lt;br&gt;&amp;gt;&amp;gt; Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at 
&lt;br&gt;&amp;gt;&amp;gt; org.apache.derby.impl.sql.compile.FromBaseTable.bindTableDescriptor(Unknown 
&lt;br&gt;&amp;gt;&amp;gt; Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at 
&lt;br&gt;&amp;gt;&amp;gt; org.apache.derby.impl.sql.compile.FromBaseTable.bindNonVTITables(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at org.apache.derby.impl.sql.compile.FromList.bindTables(Unknown 
&lt;br&gt;&amp;gt;&amp;gt; Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at 
&lt;br&gt;&amp;gt;&amp;gt; org.apache.derby.impl.sql.compile.SelectNode.bindNonVTITables(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at 
&lt;br&gt;&amp;gt;&amp;gt; org.apache.derby.impl.sql.compile.DMLStatementNode.bindTables(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at org.apache.derby.impl.sql.compile.DMLStatementNode.bind(Unknown 
&lt;br&gt;&amp;gt;&amp;gt; Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at org.apache.derby.impl.sql.compile.CursorNode.bindStatement(Unknown 
&lt;br&gt;&amp;gt;&amp;gt; Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown 
&lt;br&gt;&amp;gt;&amp;gt; Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at 
&lt;br&gt;&amp;gt;&amp;gt; org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown 
&lt;br&gt;&amp;gt;&amp;gt; Source)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;... 98 more
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Tests run: 8, Failures: 0, Errors: 8, Skipped: 0, Time elapsed: 8.81 sec &amp;lt;&amp;lt;&amp;lt; 
&lt;br&gt;&amp;gt;&amp;gt; FAILURE!
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Results :
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Tests in error:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;firstTestSetup(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;testCapability(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;testNewMimeType(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;testNewCapability(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;testNewMediaType(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;testNewClient(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;testCapabilityRepeat(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;lastTestTeardown(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Tests run: 8, Failures: 0, Errors: 8, Skipped: 0
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; thanks
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; david jencks
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26841026&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26841026&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26841026&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26841026&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26841026&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26841026&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26841026&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26841026&amp;i=9&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26841026&amp;i=10&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26841026&amp;i=11&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Jetspeed---Dev-f199.html&quot; embed=&quot;fixTarget[199]&quot; target=&quot;_top&quot; &gt;Jetspeed - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Building-js2-with-tests--tp26816935p26841026.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26840879</id>
	<title>Re: Building js2 with tests?</title>
	<published>2009-12-18T01:14:52Z</published>
	<updated>2009-12-18T01:14:52Z</updated>
	<author>
		<name>Woonsan Ko</name>
	</author>
	<content type="html">Hi David,
&lt;br&gt;&lt;br&gt;Can you try `mvn install -P init' before doing `mvn clean install'?
&lt;br&gt;This is documented here. [1]
&lt;br&gt;&lt;br&gt;[1] &lt;a href=&quot;http://portals.apache.org/jetspeed-2/buildguide/maven-2-build.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://portals.apache.org/jetspeed-2/buildguide/maven-2-build.html&lt;/a&gt;, &amp;quot;Building and installing Jetspeed Portal&amp;quot;.
&lt;br&gt;&lt;br&gt;Kind regards,
&lt;br&gt;&lt;br&gt;Woonsan
&lt;br&gt;&lt;br&gt;&lt;br&gt;----- Original Message ----
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; From: David Jencks &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26840879&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;david_jencks@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; To: Jetspeed Developers List &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26840879&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; Sent: Fri, December 18, 2009 5:51:15 AM
&lt;br&gt;&amp;gt; Subject: Re: Building js2 with tests?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; On Dec 16, 2009, at 11:32 AM, Randy Watler wrote:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; David,
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; Here is the sequence I use:
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; mvn clean install
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; mvn jetspeed:mvn -Dtarget=testdb
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I'm mystified. &amp;nbsp;When I try this step the build fails trying to find a 
&lt;br&gt;&amp;gt; non-existent plugin: (running with -X, tail end of build):
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; [INFO] Searching repository for plugin with prefix: 'jetspeed'.
&lt;br&gt;&amp;gt; [DEBUG] Loading plugin prefixes from group: org.apache.maven.plugins
&lt;br&gt;&amp;gt; [DEBUG] Loading plugin prefixes from group: org.codehaus.mojo
&lt;br&gt;&amp;gt; [DEBUG] maven-jetspeed-plugin: using locally installed snapshot
&lt;br&gt;&amp;gt; [DEBUG] Artifact not found - using stub model: Unable to determine the latest 
&lt;br&gt;&amp;gt; version
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; org.apache.maven.plugins:maven-jetspeed-plugin:pom:LATEST
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; [DEBUG] Using defaults for missing POM 
&lt;br&gt;&amp;gt; org.apache.maven.plugins:maven-jetspeed-plugin:pom:LATEST
&lt;br&gt;&amp;gt; [DEBUG] maven-jetspeed-plugin: using locally installed snapshot
&lt;br&gt;&amp;gt; [DEBUG] Artifact not found - using stub model: Unable to determine the release 
&lt;br&gt;&amp;gt; version
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; org.apache.maven.plugins:maven-jetspeed-plugin:pom:RELEASE
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; [DEBUG] Using defaults for missing POM 
&lt;br&gt;&amp;gt; org.apache.maven.plugins:maven-jetspeed-plugin:pom:RELEASE
&lt;br&gt;&amp;gt; [INFO] ------------------------------------------------------------------------
&lt;br&gt;&amp;gt; [ERROR] BUILD ERROR
&lt;br&gt;&amp;gt; [INFO] ------------------------------------------------------------------------
&lt;br&gt;&amp;gt; [INFO] The plugin 'org.apache.maven.plugins:maven-jetspeed-plugin' does not 
&lt;br&gt;&amp;gt; exist or no valid version could be found
&lt;br&gt;&amp;gt; [INFO] ------------------------------------------------------------------------
&lt;br&gt;&amp;gt; [DEBUG] Trace
&lt;br&gt;&amp;gt; org.apache.maven.lifecycle.LifecycleExecutionException: The plugin 
&lt;br&gt;&amp;gt; 'org.apache.maven.plugins:maven-jetspeed-plugin' does not exist or no valid 
&lt;br&gt;&amp;gt; version could be found
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at 
&lt;br&gt;&amp;gt; org.apache.maven.lifecycle.DefaultLifecycleExecutor.verifyPlugin(DefaultLifecycleExecutor.java:1569)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at 
&lt;br&gt;&amp;gt; org.apache.maven.lifecycle.DefaultLifecycleExecutor.getMojoDescriptor(DefaultLifecycleExecutor.java:1851)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at 
&lt;br&gt;&amp;gt; org.apache.maven.lifecycle.DefaultLifecycleExecutor.segmentTaskListByAggregationNeeds(DefaultLifecycleExecutor.java:462)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at 
&lt;br&gt;&amp;gt; org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:175)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at 
&lt;br&gt;&amp;gt; sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at 
&lt;br&gt;&amp;gt; sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at java.lang.reflect.Method.invoke(Method.java:597)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
&lt;br&gt;&amp;gt; Caused by: org.apache.maven.plugin.version.PluginVersionNotFoundException: The 
&lt;br&gt;&amp;gt; plugin 'org.apache.maven.plugins:maven-jetspeed-plugin' does not exist or no 
&lt;br&gt;&amp;gt; valid version could be found
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at 
&lt;br&gt;&amp;gt; org.apache.maven.plugin.version.DefaultPluginVersionManager.resolvePluginVersion(DefaultPluginVersionManager.java:229)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at 
&lt;br&gt;&amp;gt; org.apache.maven.plugin.version.DefaultPluginVersionManager.resolvePluginVersion(DefaultPluginVersionManager.java:91)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at 
&lt;br&gt;&amp;gt; org.apache.maven.plugin.DefaultPluginManager.verifyPlugin(DefaultPluginManager.java:179)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at 
&lt;br&gt;&amp;gt; org.apache.maven.plugin.DefaultPluginManager.loadPluginDescriptor(DefaultPluginManager.java:1642)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; at 
&lt;br&gt;&amp;gt; org.apache.maven.lifecycle.DefaultLifecycleExecutor.verifyPlugin(DefaultLifecycleExecutor.java:1540)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; ... 15 more
&lt;br&gt;&amp;gt; [INFO] ------------------------------------------------------------------------
&lt;br&gt;&amp;gt; [INFO] Total time: 4 seconds
&lt;br&gt;&amp;gt; [INFO] Finished at: Thu Dec 17 20:46:38 PST 2009
&lt;br&gt;&amp;gt; [INFO] Final Memory: 17M/527M
&lt;br&gt;&amp;gt; [INFO] ------------------------------------------------------------------------
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; I normally use maven 2.2.1 but tried also with 2.0.9.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Has anyone else seen anything like this? &amp;nbsp;Any clues?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; thanks
&lt;br&gt;&amp;gt; david jencks
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; mvn -P test test
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; There is also a target to combine the last two steps in the jetspeed plugin, 
&lt;br&gt;&amp;gt; but I don't use that, (due to general pluginphobia).
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; HTH,
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; Randy
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; David Jencks wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; I'm trying to figure out just how much the pluto DI changes I'm working on 
&lt;br&gt;&amp;gt; will break js2... so far
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; mvn clean install
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; seems to work, much to my surprise, but if I enable tests I get stuck on some 
&lt;br&gt;&amp;gt; db tests. &amp;nbsp;I looked around briefly but didn't find any instructions.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; What's the secret?
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; So far I've added this to the root pom properties:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;gt; org.apache.derby.jdbc.EmbeddedDriver
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;gt; jdbc:derby:${pom.basedir}/target/testdb;create=true
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; and get errors like this:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; ...
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Caused by: ERROR 42X05: Table/View 'CAPABILITY' does not exist.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at org.apache.derby.iapi.error.StandardException.newException(Unknown 
&lt;br&gt;&amp;gt; Source)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at 
&lt;br&gt;&amp;gt; org.apache.derby.impl.sql.compile.FromBaseTable.bindTableDescriptor(Unknown 
&lt;br&gt;&amp;gt; Source)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at 
&lt;br&gt;&amp;gt; org.apache.derby.impl.sql.compile.FromBaseTable.bindNonVTITables(Unknown Source)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at org.apache.derby.impl.sql.compile.FromList.bindTables(Unknown 
&lt;br&gt;&amp;gt; Source)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at 
&lt;br&gt;&amp;gt; org.apache.derby.impl.sql.compile.SelectNode.bindNonVTITables(Unknown Source)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at 
&lt;br&gt;&amp;gt; org.apache.derby.impl.sql.compile.DMLStatementNode.bindTables(Unknown Source)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at org.apache.derby.impl.sql.compile.DMLStatementNode.bind(Unknown 
&lt;br&gt;&amp;gt; Source)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at org.apache.derby.impl.sql.compile.CursorNode.bindStatement(Unknown 
&lt;br&gt;&amp;gt; Source)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown 
&lt;br&gt;&amp;gt; Source)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at 
&lt;br&gt;&amp;gt; org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown 
&lt;br&gt;&amp;gt; Source)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;... 98 more
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Tests run: 8, Failures: 0, Errors: 8, Skipped: 0, Time elapsed: 8.81 sec &amp;lt;&amp;lt;&amp;lt; 
&lt;br&gt;&amp;gt; FAILURE!
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Results :
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Tests in error:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp;firstTestSetup(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp;testCapability(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp;testNewMimeType(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp;testNewCapability(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp;testNewMediaType(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp;testNewClient(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp;testCapabilityRepeat(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;nbsp;lastTestTeardown(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Tests run: 8, Failures: 0, Errors: 8, Skipped: 0
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; thanks
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; david jencks
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26840879&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26840879&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26840879&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26840879&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26840879&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26840879&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26840879&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26840879&amp;i=9&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Jetspeed---Dev-f199.html&quot; embed=&quot;fixTarget[199]&quot; target=&quot;_top&quot; &gt;Jetspeed - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Building-js2-with-tests--tp26816935p26840879.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26839179</id>
	<title>Re: Building js2 with tests?</title>
	<published>2009-12-17T20:51:15Z</published>
	<updated>2009-12-17T20:51:15Z</updated>
	<author>
		<name>djencks</name>
	</author>
	<content type="html">&lt;br&gt;On Dec 16, 2009, at 11:32 AM, Randy Watler wrote:
&lt;br&gt;&lt;br&gt;&amp;gt; David,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Here is the sequence I use:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; mvn clean install
&lt;br&gt;&amp;gt; &amp;gt; mvn jetspeed:mvn -Dtarget=testdb
&lt;br&gt;&lt;br&gt;I'm mystified. &amp;nbsp;When I try this step the build fails trying to find a &amp;nbsp;
&lt;br&gt;non-existent plugin: (running with -X, tail end of build):
&lt;br&gt;&lt;br&gt;[INFO] Searching repository for plugin with prefix: 'jetspeed'.
&lt;br&gt;[DEBUG] Loading plugin prefixes from group: org.apache.maven.plugins
&lt;br&gt;[DEBUG] Loading plugin prefixes from group: org.codehaus.mojo
&lt;br&gt;[DEBUG] maven-jetspeed-plugin: using locally installed snapshot
&lt;br&gt;[DEBUG] Artifact not found - using stub model: Unable to determine the &amp;nbsp;
&lt;br&gt;latest version
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;org.apache.maven.plugins:maven-jetspeed-plugin:pom:LATEST
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;[DEBUG] Using defaults for missing POM org.apache.maven.plugins:maven- 
&lt;br&gt;jetspeed-plugin:pom:LATEST
&lt;br&gt;[DEBUG] maven-jetspeed-plugin: using locally installed snapshot
&lt;br&gt;[DEBUG] Artifact not found - using stub model: Unable to determine the &amp;nbsp;
&lt;br&gt;release version
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;org.apache.maven.plugins:maven-jetspeed-plugin:pom:RELEASE
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;[DEBUG] Using defaults for missing POM org.apache.maven.plugins:maven- 
&lt;br&gt;jetspeed-plugin:pom:RELEASE
&lt;br&gt;[INFO] &amp;nbsp;
&lt;br&gt;------------------------------------------------------------------------
&lt;br&gt;[ERROR] BUILD ERROR
&lt;br&gt;[INFO] &amp;nbsp;
&lt;br&gt;------------------------------------------------------------------------
&lt;br&gt;[INFO] The plugin 'org.apache.maven.plugins:maven-jetspeed-plugin' &amp;nbsp;
&lt;br&gt;does not exist or no valid version could be found
&lt;br&gt;[INFO] &amp;nbsp;
&lt;br&gt;------------------------------------------------------------------------
&lt;br&gt;[DEBUG] Trace
&lt;br&gt;org.apache.maven.lifecycle.LifecycleExecutionException: The plugin &amp;nbsp;
&lt;br&gt;'org.apache.maven.plugins:maven-jetspeed-plugin' does not exist or no &amp;nbsp;
&lt;br&gt;valid version could be found
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at &amp;nbsp;
&lt;br&gt;org 
&lt;br&gt;.apache 
&lt;br&gt;.maven 
&lt;br&gt;.lifecycle 
&lt;br&gt;.DefaultLifecycleExecutor.verifyPlugin(DefaultLifecycleExecutor.java: 
&lt;br&gt;1569)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at &amp;nbsp;
&lt;br&gt;org 
&lt;br&gt;.apache 
&lt;br&gt;.maven 
&lt;br&gt;.lifecycle 
&lt;br&gt;.DefaultLifecycleExecutor 
&lt;br&gt;.getMojoDescriptor(DefaultLifecycleExecutor.java:1851)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at &amp;nbsp;
&lt;br&gt;org 
&lt;br&gt;.apache 
&lt;br&gt;.maven 
&lt;br&gt;.lifecycle 
&lt;br&gt;.DefaultLifecycleExecutor 
&lt;br&gt;.segmentTaskListByAggregationNeeds(DefaultLifecycleExecutor.java:462)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at &amp;nbsp;
&lt;br&gt;org 
&lt;br&gt;.apache 
&lt;br&gt;.maven 
&lt;br&gt;.lifecycle 
&lt;br&gt;.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:175)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at &amp;nbsp;
&lt;br&gt;org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at &amp;nbsp;
&lt;br&gt;sun 
&lt;br&gt;.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 
&lt;br&gt;39)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at &amp;nbsp;
&lt;br&gt;sun 
&lt;br&gt;.reflect 
&lt;br&gt;.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 
&lt;br&gt;25)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at java.lang.reflect.Method.invoke(Method.java:597)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java: 
&lt;br&gt;430)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
&lt;br&gt;Caused by: &amp;nbsp;
&lt;br&gt;org.apache.maven.plugin.version.PluginVersionNotFoundException: The &amp;nbsp;
&lt;br&gt;plugin 'org.apache.maven.plugins:maven-jetspeed-plugin' does not exist &amp;nbsp;
&lt;br&gt;or no valid version could be found
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at &amp;nbsp;
&lt;br&gt;org 
&lt;br&gt;.apache 
&lt;br&gt;.maven 
&lt;br&gt;.plugin 
&lt;br&gt;.version 
&lt;br&gt;.DefaultPluginVersionManager 
&lt;br&gt;.resolvePluginVersion(DefaultPluginVersionManager.java:229)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at &amp;nbsp;
&lt;br&gt;org 
&lt;br&gt;.apache 
&lt;br&gt;.maven 
&lt;br&gt;.plugin 
&lt;br&gt;.version 
&lt;br&gt;.DefaultPluginVersionManager 
&lt;br&gt;.resolvePluginVersion(DefaultPluginVersionManager.java:91)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at &amp;nbsp;
&lt;br&gt;org 
&lt;br&gt;.apache 
&lt;br&gt;.maven 
&lt;br&gt;.plugin.DefaultPluginManager.verifyPlugin(DefaultPluginManager.java:179)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at &amp;nbsp;
&lt;br&gt;org 
&lt;br&gt;.apache 
&lt;br&gt;.maven 
&lt;br&gt;.plugin 
&lt;br&gt;.DefaultPluginManager.loadPluginDescriptor(DefaultPluginManager.java: 
&lt;br&gt;1642)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at &amp;nbsp;
&lt;br&gt;org 
&lt;br&gt;.apache 
&lt;br&gt;.maven 
&lt;br&gt;.lifecycle 
&lt;br&gt;.DefaultLifecycleExecutor.verifyPlugin(DefaultLifecycleExecutor.java: 
&lt;br&gt;1540)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ... 15 more
&lt;br&gt;[INFO] &amp;nbsp;
&lt;br&gt;------------------------------------------------------------------------
&lt;br&gt;[INFO] Total time: 4 seconds
&lt;br&gt;[INFO] Finished at: Thu Dec 17 20:46:38 PST 2009
&lt;br&gt;[INFO] Final Memory: 17M/527M
&lt;br&gt;[INFO] &amp;nbsp;
&lt;br&gt;------------------------------------------------------------------------
&lt;br&gt;&lt;br&gt;&lt;br&gt;I normally use maven 2.2.1 but tried also with 2.0.9.
&lt;br&gt;&lt;br&gt;Has anyone else seen anything like this? &amp;nbsp;Any clues?
&lt;br&gt;&lt;br&gt;thanks
&lt;br&gt;david jencks
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; &amp;gt; mvn -P test test
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; There is also a target to combine the last two steps in the jetspeed &amp;nbsp;
&lt;br&gt;&amp;gt; plugin, but I don't use that, (due to general pluginphobia).
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; HTH,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Randy
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; David Jencks wrote:
&lt;br&gt;&amp;gt;&amp;gt; I'm trying to figure out just how much the pluto DI changes I'm &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; working on will break js2... so far
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; mvn clean install
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; seems to work, much to my surprise, but if I enable tests I get &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; stuck on some db tests. &amp;nbsp;I looked around briefly but didn't find &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; any instructions.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; What's the secret?
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; So far I've added this to the root pom properties:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;gt;&amp;gt; &amp;lt; 
&lt;br&gt;&amp;gt;&amp;gt; org 
&lt;br&gt;&amp;gt;&amp;gt; .apache 
&lt;br&gt;&amp;gt;&amp;gt; .jetspeed 
&lt;br&gt;&amp;gt;&amp;gt; .test.database.driver&amp;gt;org.apache.derby.jdbc.EmbeddedDriver&amp;lt;/ 
&lt;br&gt;&amp;gt;&amp;gt; org.apache.jetspeed.test.database.driver&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;&amp;lt;org.apache.jetspeed.test.database.url&amp;gt;jdbc:derby:${pom.basedir}/ 
&lt;br&gt;&amp;gt;&amp;gt; target/testdb;create=true&amp;lt;/org.apache.jetspeed.test.database.url&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;&amp;lt;org.apache.jetspeed.test.database.user&amp;gt;&amp;lt;/ 
&lt;br&gt;&amp;gt;&amp;gt; org.apache.jetspeed.test.database.user&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;&amp;lt;org.apache.jetspeed.test.database.password&amp;gt;&amp;lt;/ 
&lt;br&gt;&amp;gt;&amp;gt; org.apache.jetspeed.test.database.password&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; and get errors like this:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ...
&lt;br&gt;&amp;gt;&amp;gt; Caused by: ERROR 42X05: Table/View 'CAPABILITY' does not exist.
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; org.apache.derby.iapi.error.StandardException.newException(Unknown &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; Source)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; org 
&lt;br&gt;&amp;gt;&amp;gt; .apache 
&lt;br&gt;&amp;gt;&amp;gt; .derby.impl.sql.compile.FromBaseTable.bindTableDescriptor(Unknown &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; Source)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; org 
&lt;br&gt;&amp;gt;&amp;gt; .apache 
&lt;br&gt;&amp;gt;&amp;gt; .derby.impl.sql.compile.FromBaseTable.bindNonVTITables(Unknown &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; Source)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; org.apache.derby.impl.sql.compile.FromList.bindTables(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; org 
&lt;br&gt;&amp;gt;&amp;gt; .apache.derby.impl.sql.compile.SelectNode.bindNonVTITables(Unknown &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; Source)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; org 
&lt;br&gt;&amp;gt;&amp;gt; .apache.derby.impl.sql.compile.DMLStatementNode.bindTables(Unknown &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; Source)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; org.apache.derby.impl.sql.compile.DMLStatementNode.bind(Unknown &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; Source)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; org.apache.derby.impl.sql.compile.CursorNode.bindStatement(Unknown &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; Source)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; org 
&lt;br&gt;&amp;gt;&amp;gt; .apache 
&lt;br&gt;&amp;gt;&amp;gt; .derby 
&lt;br&gt;&amp;gt;&amp;gt; .impl 
&lt;br&gt;&amp;gt;&amp;gt; .sql 
&lt;br&gt;&amp;gt;&amp;gt; .conn 
&lt;br&gt;&amp;gt;&amp;gt; .GenericLanguageConnectionContext.prepareInternalStatement(Unknown &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; Source)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;... 98 more
&lt;br&gt;&amp;gt;&amp;gt; Tests run: 8, Failures: 0, Errors: 8, Skipped: 0, Time elapsed: &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; 8.81 sec &amp;lt;&amp;lt;&amp;lt; FAILURE!
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Results :
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Tests in error:
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;firstTestSetup(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;testCapability(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;testNewMimeType(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;testNewCapability(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;testNewMediaType(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;testNewClient(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; 
&lt;br&gt;&amp;gt;&amp;gt; testCapabilityRepeat(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;lastTestTeardown(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Tests run: 8, Failures: 0, Errors: 8, Skipped: 0
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; thanks
&lt;br&gt;&amp;gt;&amp;gt; david jencks
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26839179&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26839179&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26839179&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26839179&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26839179&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26839179&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Jetspeed---Dev-f199.html&quot; embed=&quot;fixTarget[199]&quot; target=&quot;_top&quot; &gt;Jetspeed - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Building-js2-with-tests--tp26816935p26839179.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26836335</id>
	<title>svn commit: r891959 - in /portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp: WEB-INF/jetui/yui/jetui-portlet.jsp decorations/images/detach.gif javascript/jetspeed/jetui/jetui-portal.js jetui/engine/portal.js</title>
	<published>2009-12-17T14:42:09Z</published>
	<updated>2009-12-17T14:42:09Z</updated>
	<author>
		<name>taylor-8</name>
	</author>
	<content type="html">Author: taylor
&lt;br&gt;Date: Thu Dec 17 22:42:08 2009
&lt;br&gt;New Revision: 891959
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=891959&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=891959&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;&lt;a href=&quot;https://issues.apache.org/jira/browse/JS2-1084&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JS2-1084&lt;/a&gt;&lt;br&gt;refactoring of movePortlet logic, moving down persistMove to portal.movePortlet with handlers, renaming portal.movePortlet to portal.moveToGrid
&lt;br&gt;start hooking in detach 
&lt;br&gt;&lt;br&gt;Added:
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/images/detach.gif &amp;nbsp; (with props)
&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetui/yui/jetui-portlet.jsp
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetui/yui/jetui-portlet.jsp
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetui/yui/jetui-portlet.jsp?rev=891959&amp;r1=891958&amp;r2=891959&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetui/yui/jetui-portlet.jsp?rev=891959&amp;r1=891958&amp;r2=891959&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetui/yui/jetui-portlet.jsp (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetui/yui/jetui-portlet.jsp Thu Dec 17 22:42:08 2009
&lt;br&gt;@@ -60,7 +60,9 @@
&lt;br&gt;&amp;nbsp;if (request.getUserPrincipal() != null &amp;&amp; fragment.getDecoration().getActions().size() &amp;gt; 0)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp;%&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;span style='cursor: pointer; z-index: 1000;' id='jetspeed-close-&amp;lt;%=fragment.getId()%&amp;gt;' title=&amp;quot;close&amp;quot; class=&amp;quot;portlet-action-close&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;&amp;lt;%=request.getContextPath()%&amp;gt;/decorations/portlet/jetspeed/images/close.gif&amp;quot; alt=&amp;quot;Close&amp;quot; border=&amp;quot;0&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;span style='cursor: pointer; z-index: 1000;' id='jetspeed-close-&amp;lt;%=fragment.getId()%&amp;gt;' title=&amp;quot;close&amp;quot; class=&amp;quot;portlet-action-close&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;&amp;lt;%=request.getContextPath()%&amp;gt;/decorations/images/close.gif&amp;quot; alt=&amp;quot;Close&amp;quot; border=&amp;quot;0&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;span style='cursor: pointer; z-index: 1000;' id='jetspeed-detach-&amp;lt;%=fragment.getId()%&amp;gt;' title=&amp;quot;detach&amp;quot; class=&amp;quot;portlet-action-detach&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;&amp;lt;%=request.getContextPath()%&amp;gt;/decorations/images/detach.gif&amp;quot; alt=&amp;quot;Detach&amp;quot; border=&amp;quot;0&amp;quot; /&amp;gt;&amp;lt;/span&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;&amp;lt;% } &amp;nbsp;} %&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/div&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/div&amp;gt;
&lt;br&gt;&lt;br&gt;Added: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/images/detach.gif
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/images/detach.gif?rev=891959&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/images/detach.gif?rev=891959&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;Binary file - no diff available.
&lt;br&gt;&lt;br&gt;Propchange: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/images/detach.gif
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = application/octet-stream
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js?rev=891959&amp;r1=891958&amp;r2=891959&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js?rev=891959&amp;r1=891958&amp;r2=891959&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js Thu Dec 17 22:42:08 2009
&lt;br&gt;@@ -179,7 +179,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;},
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @method moveToLayout
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @method moveToLayout moves a portlet window to layout column grid position in the browser
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * this is a client side only operation. Operates in grid (non-detached) mode.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;moveToLayout : function(e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var drop = e.drop.get('node'),
&lt;br&gt;@@ -206,11 +207,12 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// I don't think this is working
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e.drop.unplug(Y.Plugin.Drop);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;},
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @method movePortlet
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @method moveToGrid moves a portlet window to another grid position in the browser
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * this is a client side only operation. Operates in grid (non-detached) mode.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movePortlet : function(e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;moveToGrid : function(e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var portal = JETUI_YUI.getPortalInstance();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var drop = e.drop.get('node'),
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;drag = e.drag.get('node');
&lt;br&gt;@@ -250,10 +252,93 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;node: dragParent,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;groups: ['portlets'] &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;});
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;},
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @method detachPortlet detaches a portlet from a grid position and moves it to a z-order top detached window
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;detachPortlet : function(e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var portal = JETUI_YUI.getPortalInstance();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var windowId = null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (e instanceof String) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;windowId = e;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var windowId = e.currentTarget.getAttribute(&amp;quot;id&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;windowId = windowId.replace(/^jetspeed-detach-/, &amp;quot;&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var window = Y.one(&amp;quot;[id='&amp;quot; + windowId + &amp;quot;']&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (window) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Y.log(&amp;quot;data = &amp;quot; + window.data.get(&amp;quot;name&amp;quot;)); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// TODO: left off here
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;},
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;onMoveComplete : function(id, o, args) { 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var id = id; // Transaction ID. 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var data = o.responseText; // Response data.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Y.log(&amp;quot;move result = &amp;quot; + data);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var windowId = args.complete[0];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}, &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @method movePortlet persist the move operation to the persistent store over restful put request
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movePortlet : function(drag, e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var windowId = &amp;nbsp;drag.getAttribute('id');
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (drag.data.get(&amp;quot;toolbar&amp;quot;) == false) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	var oldColumn = drag.data.get('column');
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	var oldRow = drag.data.get('row'); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;		var dragParent = drag.get('parentNode');
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	var parentColumn = dragParent.data.get('column');
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	if (parentColumn != oldColumn)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;		this.reallocateColumn(oldColumn); // moved from different column
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;		drag.data.set('column', parentColumn);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	this.reallocateColumn(parentColumn);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var uri = this.portalContextPath + &amp;quot;/services/pagelayout/fragment/&amp;quot; + windowId + &amp;quot;/pos/?_type=json&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;uri += &amp;quot;&amp;col=&amp;quot; + drag.data.get('column') + &amp;quot;&amp;row=&amp;quot; + drag.data.get('row');
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var config = {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;on: { complete: this.onMoveComplete },
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;method: &amp;quot;PUT&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;headers: { &amp;quot;X-Portal-Path&amp;quot; : this.portalPagePath },
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;arguments: { complete: [ windowId ] }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;};
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var request = Y.io(uri, config);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} &amp;nbsp; &amp;nbsp;	
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var uri = this.portalContextPath + &amp;quot;/services/pagelayout/fragment/&amp;quot; + windowId + &amp;quot;/pos/?_type=json&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;uri += &amp;quot;&amp;x=&amp;quot; + e.target.region.top + &amp;quot;&amp;y=&amp;quot; + e.target.region.left;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var config = {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;on: { complete: this.onMoveComplete },
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;method: &amp;quot;PUT&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;headers: { &amp;quot;X-Portal-Path&amp;quot; : this.portalPagePath },
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;arguments: { complete: [ windowId ] }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;};
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var request = Y.io(uri, config);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;},
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;reallocateColumn : function(column) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;	 &amp;nbsp; &amp;nbsp;var columns = Y.Node.all(JetuiConfiguration.layoutStyle); 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;	 &amp;nbsp; &amp;nbsp;columns.each(function(v, k) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;	 &amp;nbsp; &amp;nbsp;	if (v.data.get('locked') == false)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;	 &amp;nbsp; &amp;nbsp;	{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;		 &amp;nbsp; &amp;nbsp;	if (v.data.get('column') == column)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;		 &amp;nbsp; &amp;nbsp;	{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;		 &amp;nbsp; &amp;nbsp;		var row = 0;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;	 &amp;nbsp; &amp;nbsp;			v.get('children').each(function(v,k) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;		 &amp;nbsp; &amp;nbsp;			v.data.set('row', row);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;		 &amp;nbsp; &amp;nbsp;			row++;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;		 &amp;nbsp; &amp;nbsp;		}, row);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;		 &amp;nbsp; &amp;nbsp;	}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;	 &amp;nbsp; &amp;nbsp;	}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;	 &amp;nbsp; &amp;nbsp;});
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;	},
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;	
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @method onPortletRemoveComplete
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;onPortletRemoveComplete : function(id, o, args) {
&lt;br&gt;@@ -275,7 +360,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;},
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @method removePortlet
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @method removePortlet removes a portlet from the persistent store over restful delete request
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;removePortlet : function(e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var portal = JETUI_YUI.getPortalInstance();
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js?rev=891959&amp;r1=891958&amp;r2=891959&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js?rev=891959&amp;r1=891958&amp;r2=891959&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js Thu Dec 17 22:42:08 2009
&lt;br&gt;@@ -138,21 +138,19 @@
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dragGroups = ['toolbars'],	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dragMode = 'point';
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dropGroups = [];
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var ddNav = new Y.DD.Drag({
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;node: v,
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;groups: dragGroups,
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dragMode: dragMode &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}).plug(Y.Plugin.DDProxy, { 
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	 moveOnEnd: false &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 	 &amp;nbsp; &amp;nbsp;	
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}); &amp;nbsp; &amp;nbsp;
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ddNav.addHandle(config.dragHandleStyle);
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp;	var drop = new Y.DD.Drop({
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;node: v,
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;groups: dropGroups &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;});
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var ddNav = new Y.DD.Drag({
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;node: v,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;groups: dragGroups,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dragMode: dragMode &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}).plug(Y.Plugin.DDProxy, { 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	 moveOnEnd: false &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 	 &amp;nbsp; &amp;nbsp;	
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}); &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ddNav.addHandle(config.dragHandleStyle);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;	var drop = new Y.DD.Drop({
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;node: v,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;groups: dropGroups &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;});
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;	//portlet.info();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;});
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;@@ -174,7 +172,12 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;closeWindows.each(function(v, k) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;v.on('click', portal.removePortlet);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;});
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;var detachWindows = Y.Node.all('.portlet-action-detach');
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;detachWindows.each(function(v, k) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;v.on('click', portal.detachPortlet);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;});
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp;	Y.DD.DDM.on('drag:drophit', function(e) {
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp;var portal = JETUI_YUI.getPortalInstance();
&lt;br&gt;&amp;nbsp;		var drop = e.drop.get('node'),
&lt;br&gt;@@ -228,70 +231,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;drag.get('node').removeClass('moving');
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;drag.get('dragNode').set('innerHTML', '');
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;persistMove(drag.get('node'), e);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;});
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;var onMoveComplete = function(id, o, args) { 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var id = id; // Transaction ID. 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var data = o.responseText; // Response data.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Y.log(&amp;quot;move result = &amp;quot; + data);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var windowId = args.complete[0];
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;var persistMove = function(drag, e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var portal = JETUI_YUI.getPortalInstance();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var windowId = &amp;nbsp;drag.getAttribute('id');
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (drag.data.get(&amp;quot;toolbar&amp;quot;) == false) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	var oldColumn = drag.data.get('column');
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	var oldRow = drag.data.get('row'); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	
&lt;br&gt;- &amp;nbsp; &amp;nbsp;		var dragParent = drag.get('parentNode');
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	var parentColumn = dragParent.data.get('column');
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	if (parentColumn != oldColumn)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;		reallocateColumn(oldColumn); // moved from different column
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;		drag.data.set('column', parentColumn);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	reallocateColumn(parentColumn);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var uri = portal.portalContextPath + &amp;quot;/services/pagelayout/fragment/&amp;quot; + windowId + &amp;quot;/pos/?_type=json&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;uri += &amp;quot;&amp;col=&amp;quot; + drag.data.get('column') + &amp;quot;&amp;row=&amp;quot; + drag.data.get('row');
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var config = {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;on: { complete: onMoveComplete },
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;method: &amp;quot;PUT&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;headers: { &amp;quot;X-Portal-Path&amp;quot; : portal.portalPagePath },
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;arguments: { complete: [ windowId ] }
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;};
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var request = Y.io(uri, config);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} &amp;nbsp; &amp;nbsp;	
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var uri = portal.portalContextPath + &amp;quot;/services/pagelayout/fragment/&amp;quot; + windowId + &amp;quot;/pos/?_type=json&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;uri += &amp;quot;&amp;x=&amp;quot; + e.target.region.top + &amp;quot;&amp;y=&amp;quot; + e.target.region.left;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var config = {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;on: { complete: onMoveComplete },
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;method: &amp;quot;PUT&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;headers: { &amp;quot;X-Portal-Path&amp;quot; : portal.portalPagePath },
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;arguments: { complete: [ windowId ] }
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;};
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var request = Y.io(uri, config);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;};
&lt;br&gt;-
&lt;br&gt;-	var reallocateColumn = function(column) {
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp;var columns = Y.Node.all(config.layoutStyle); 
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp;columns.each(function(v, k) {
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp;	if (v.data.get('locked') == false)
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp;	{
&lt;br&gt;-		 &amp;nbsp; &amp;nbsp;	if (v.data.get('column') == column)
&lt;br&gt;-		 &amp;nbsp; &amp;nbsp;	{
&lt;br&gt;-		 &amp;nbsp; &amp;nbsp;		var row = 0;
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp;			v.get('children').each(function(v,k) {
&lt;br&gt;-		 &amp;nbsp; &amp;nbsp;			v.data.set('row', row);
&lt;br&gt;-		 &amp;nbsp; &amp;nbsp;			row++;
&lt;br&gt;-		 &amp;nbsp; &amp;nbsp;		}, row);
&lt;br&gt;-		 &amp;nbsp; &amp;nbsp;	}
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp;	}
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp;});
&lt;br&gt;-	}; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;portal.movePortlet(drag.get('node'), e);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Y.DD.DDM.on('drag:start', function(e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var drag = e.target;
&lt;br&gt;@@ -379,7 +320,7 @@
&lt;br&gt;&amp;nbsp;		 &amp;nbsp; &amp;nbsp;	{
&lt;br&gt;&amp;nbsp;		 &amp;nbsp; &amp;nbsp;		// Y.log(&amp;quot;**** HIT&amp;quot;);
&lt;br&gt;&amp;nbsp;		 &amp;nbsp; &amp;nbsp;		portal.isMoving = true;
&lt;br&gt;-		 &amp;nbsp; &amp;nbsp;		portal.movePortlet(e); 
&lt;br&gt;+		 &amp;nbsp; &amp;nbsp;		portal.moveToGrid(e); 
&lt;br&gt;&amp;nbsp;		 &amp;nbsp; &amp;nbsp;		portal.isMoving = false;
&lt;br&gt;&amp;nbsp;		 &amp;nbsp; &amp;nbsp;	}
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp;	}
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26836335&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26836335&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Jetspeed---Dev-f199.html&quot; embed=&quot;fixTarget[199]&quot; target=&quot;_top&quot; &gt;Jetspeed - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r891959---in--portals-jetspeed-2-portal-trunk-applications-jetspeed-src-main-webapp%3A-WEB-INF-jetui-yui-jetui-portlet.jsp-decorations-images-detach.gif-javascript-jetspeed-jetui-jetui-portal.js-jetui-engine-portal.js-tp26836335p26836335.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26834665</id>
	<title>svn commit: r891885 - in /portals/jetspeed-2/portal/trunk: applications/jetspeed/src/main/webapp/jetui/engine/portal.js components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PageLayoutService.java</title>
	<published>2009-12-17T12:44:20Z</published>
	<updated>2009-12-17T12:44:20Z</updated>
	<author>
		<name>woonsan</name>
	</author>
	<content type="html">Author: woonsan
&lt;br&gt;Date: Thu Dec 17 20:44:20 2009
&lt;br&gt;New Revision: 891885
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=891885&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=891885&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;JS2-1084: Replacing old ajax api during portlet window moving by new rest api.
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PageLayoutService.java
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js?rev=891885&amp;r1=891884&amp;r2=891885&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js?rev=891885&amp;r1=891884&amp;r2=891885&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js Thu Dec 17 20:44:20 2009
&lt;br&gt;@@ -211,16 +211,6 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;});
&lt;br&gt;&amp;nbsp;	
&lt;br&gt;- &amp;nbsp; &amp;nbsp;var onMoveComplete = function(id, o, args) { 
&lt;br&gt;- &amp;nbsp; &amp;nbsp;	var id = id; // Transaction ID. 
&lt;br&gt;- &amp;nbsp; &amp;nbsp;	var data = o.responseText; // Response data.
&lt;br&gt;- &amp;nbsp; &amp;nbsp;	//Y.log(&amp;quot;move result = &amp;quot; + data);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;	var dataIn = Y.DataType.XML.parse(data),
&lt;br&gt;- &amp;nbsp; &amp;nbsp;		schema = { &amp;nbsp;resultListLocator: &amp;quot;status&amp;quot;, resultFields: [{key:&amp;quot;status&amp;quot;}] },
&lt;br&gt;- &amp;nbsp; &amp;nbsp;		dataOut = Y.DataSchema.XML.apply(schema, dataIn);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;	var widgetId = args[0];
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Y.DD.DDM.on('drag:end', function(e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var drag = e.target;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (drag.target) {
&lt;br&gt;@@ -241,16 +231,16 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;persistMove(drag.get('node'), e);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;});
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;-
&lt;br&gt;-	 
&lt;br&gt;-
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;var onMoveComplete = function(id, o, args) { 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var id = id; // Transaction ID. 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var data = o.responseText; // Response data.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Y.log(&amp;quot;move result = &amp;quot; + data);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var windowId = args.complete[0];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;var persistMove = function(drag, e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp;	var uri = document.location.href;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;	if (uri.indexOf(&amp;quot;/portal&amp;quot;) &amp;gt; -1)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;		uri = uri.replace(&amp;quot;/portal&amp;quot;, &amp;quot;/ajaxapi&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;	else
&lt;br&gt;- &amp;nbsp; &amp;nbsp;		uri = uri.replace(&amp;quot;/ui&amp;quot;, &amp;quot;/ajaxapi&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;	var windowId = &amp;nbsp;drag.getAttribute('id');
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var portal = JETUI_YUI.getPortalInstance();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var windowId = &amp;nbsp;drag.getAttribute('id');
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (drag.data.get(&amp;quot;toolbar&amp;quot;) == false) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	var oldColumn = drag.data.get('column');
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	var oldRow = drag.data.get('row'); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	
&lt;br&gt;@@ -262,15 +252,27 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;		drag.data.set('column', parentColumn);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	reallocateColumn(parentColumn);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	var uri = uri + &amp;quot;?action=moveabs&amp;id=&amp;quot; + windowId + &amp;quot;&amp;col=&amp;quot; + drag.data.get('column') + &amp;quot;&amp;row=&amp;quot; + drag.data.get('row');
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Y.on('io:complete', onMoveComplete, this, [windowId]); 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var request = Y.io(uri); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var uri = portal.portalContextPath + &amp;quot;/services/pagelayout/fragment/&amp;quot; + windowId + &amp;quot;/pos/?_type=json&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;uri += &amp;quot;&amp;col=&amp;quot; + drag.data.get('column') + &amp;quot;&amp;row=&amp;quot; + drag.data.get('row');
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var config = {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;on: { complete: onMoveComplete },
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;method: &amp;quot;PUT&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;headers: { &amp;quot;X-Portal-Path&amp;quot; : portal.portalPagePath },
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;arguments: { complete: [ windowId ] }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;};
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var request = Y.io(uri, config);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} &amp;nbsp; &amp;nbsp;	
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	var uri = uri + &amp;quot;?action=move&amp;id=&amp;quot; + windowId + &amp;quot;&amp;x=&amp;quot; + e.target.region.top + &amp;quot;&amp;y=&amp;quot; + e.target.region.left;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Y.on('io:complete', onMoveComplete, this, [windowId]); 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var request = Y.io(uri); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var uri = portal.portalContextPath + &amp;quot;/services/pagelayout/fragment/&amp;quot; + windowId + &amp;quot;/pos/?_type=json&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;uri += &amp;quot;&amp;x=&amp;quot; + e.target.region.top + &amp;quot;&amp;y=&amp;quot; + e.target.region.left;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var config = {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;on: { complete: onMoveComplete },
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;method: &amp;quot;PUT&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;headers: { &amp;quot;X-Portal-Path&amp;quot; : portal.portalPagePath },
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;arguments: { complete: [ windowId ] }
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;};
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var request = Y.io(uri, config);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;};
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PageLayoutService.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PageLayoutService.java?rev=891885&amp;r1=891884&amp;r2=891885&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PageLayoutService.java?rev=891885&amp;r1=891884&amp;r2=891885&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PageLayoutService.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PageLayoutService.java Thu Dec 17 20:44:20 2009
&lt;br&gt;@@ -17,6 +17,7 @@
&lt;br&gt;&amp;nbsp;package org.apache.jetspeed.services.rest;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import java.util.Comparator;
&lt;br&gt;+import java.util.Iterator;
&lt;br&gt;&amp;nbsp;import java.util.List;
&lt;br&gt;&amp;nbsp;import java.util.SortedSet;
&lt;br&gt;&amp;nbsp;import java.util.TreeSet;
&lt;br&gt;@@ -346,9 +347,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageLayoutComponent.updateRowColumn(contentFragment, destRow, destColumn);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageLayoutComponent.updateRowColumn(destFragment, row, column);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (&amp;quot;down&amp;quot;.equals(direction))
&lt;br&gt;@@ -361,9 +362,17 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SortedSet&amp;lt;ContentFragment&amp;gt; tailSet = set.tailSet(contentFragment);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!tailSet.isEmpty())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (tailSet.size() &amp;gt; 1)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ContentFragment destFragment = tailSet.first();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Iterator&amp;lt;ContentFragment&amp;gt; it = tailSet.iterator();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ContentFragment tempFragment = it.next();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!tempFragment.getId().equals(contentFragment.getId()))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalStateException(&amp;quot;Tail set of the column fragment set must start with the content fragment itself.&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ContentFragment destFragment = it.next();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int row = contentFragment.getLayoutRow();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int column = contentFragment.getLayoutColumn();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int destRow = destFragment.getLayoutRow();
&lt;br&gt;@@ -371,9 +380,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageLayoutComponent.updateRowColumn(contentFragment, destRow, destColumn);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageLayoutComponent.updateRowColumn(destFragment, row, column);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;@@ -385,14 +394,67 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int row = NumberUtils.toInt(rowParam, -1);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int col = NumberUtils.toInt(colParam, -1);
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageLayoutComponent.updateRowColumn(contentFragment, row, col);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch (Exception e)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (row != -1 &amp;&amp; col != -1 &amp;&amp; (contentFragment.getLayoutRow() != row || contentFragment.getLayoutColumn() != col))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new WebApplicationException(e);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ContentFragment layoutFragment = null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!StringUtils.isBlank(layoutFragmentId))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;layoutFragment = contentPage.getFragmentByFragmentId(layoutFragmentId);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (layoutFragment == null)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new WebApplicationException(new IllegalArgumentException(&amp;quot;Layout fragment not found with the specified id: &amp;quot; + layoutFragmentId));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;layoutFragment = getParentFragment(pageLayoutComponent.getUnlockedRootFragment(contentPage), fragmentId);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (layoutFragment == null)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new WebApplicationException(new IllegalArgumentException(&amp;quot;Layout fragment not found for the fragment: &amp;quot; + fragmentId));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int layoutColumnCount = getColumnCountOfLayoutFragment(layoutFragment);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SortedSet&amp;lt;ContentFragment&amp;gt; [] fragmentSetArray = getSortedChildFragmentSetArray(layoutFragment, layoutColumnCount);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (fragmentSetArray.length &amp;gt; col)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SortedSet&amp;lt;ContentFragment&amp;gt; set = fragmentSetArray[col];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (row &amp;gt;= set.size())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;row = set.size();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageLayoutComponent.updateRowColumn(contentFragment, row, col);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SortedSet&amp;lt;ContentFragment&amp;gt; tailSet = set.tailSet(contentFragment);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (ContentFragment f : tailSet)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!f.getId().equals(contentFragment.getId()))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;++row;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (row != f.getLayoutRow())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageLayoutComponent.updateRowColumn(f, row, col);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch (Exception e)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new WebApplicationException(e);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26834665&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26834665&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Jetspeed---Dev-f199.html&quot; embed=&quot;fixTarget[199]&quot; target=&quot;_top&quot; &gt;Jetspeed - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r891885---in--portals-jetspeed-2-portal-trunk%3A-applications-jetspeed-src-main-webapp-jetui-engine-portal.js-components-jetspeed-portal-src-main-java-org-apache-jetspeed-services-rest-PageLayoutService.java-tp26834665p26834665.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26832962</id>
	<title>svn commit: r891831 - in /portals/jetspeed-2/applications/j2-admin/trunk/src/main: resources/org/apache/jetspeed/portlets/toolbox/ resources/org/apache/jetspeed/portlets/toolbox/resources/ webapp/WEB-INF/ webapp/WEB-INF/view/toolbox/</title>
	<published>2009-12-17T10:41:17Z</published>
	<updated>2009-12-17T10:41:17Z</updated>
	<author>
		<name>woonsan</name>
	</author>
	<content type="html">Author: woonsan
&lt;br&gt;Date: Thu Dec 17 18:41:17 2009
&lt;br&gt;New Revision: 891831
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=891831&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=891831&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;JS2-1057: Adding i18n
&lt;br&gt;&lt;br&gt;Added:
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/applications/j2-admin/trunk/src/main/resources/org/apache/jetspeed/portlets/toolbox/
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/applications/j2-admin/trunk/src/main/resources/org/apache/jetspeed/portlets/toolbox/resources/
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/applications/j2-admin/trunk/src/main/resources/org/apache/jetspeed/portlets/toolbox/resources/JetspeedToolboxResources.properties &amp;nbsp; (with props)
&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp
&lt;br&gt;&lt;br&gt;Added: portals/jetspeed-2/applications/j2-admin/trunk/src/main/resources/org/apache/jetspeed/portlets/toolbox/resources/JetspeedToolboxResources.properties
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/resources/org/apache/jetspeed/portlets/toolbox/resources/JetspeedToolboxResources.properties?rev=891831&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/resources/org/apache/jetspeed/portlets/toolbox/resources/JetspeedToolboxResources.properties?rev=891831&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/resources/org/apache/jetspeed/portlets/toolbox/resources/JetspeedToolboxResources.properties (added)
&lt;br&gt;+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/resources/org/apache/jetspeed/portlets/toolbox/resources/JetspeedToolboxResources.properties Thu Dec 17 18:41:17 2009
&lt;br&gt;@@ -0,0 +1,34 @@
&lt;br&gt;+# Licensed to the Apache Software Foundation (ASF) under one or more
&lt;br&gt;+# contributor license agreements. &amp;nbsp;See the NOTICE file distributed with
&lt;br&gt;+# this work for additional information regarding copyright ownership.
&lt;br&gt;+# The ASF licenses this file to You under the Apache License, Version 2.0
&lt;br&gt;+# (the &amp;quot;License&amp;quot;); you may not use this file except in compliance with
&lt;br&gt;+# the License. &amp;nbsp;You may obtain a copy of the License at
&lt;br&gt;+#
&lt;br&gt;+# &amp;nbsp; &amp;nbsp; &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+#
&lt;br&gt;+# Unless required by applicable law or agreed to in writing, software
&lt;br&gt;+# distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&lt;br&gt;+# See the License for the specific language governing permissions and
&lt;br&gt;+# limitations under the License.
&lt;br&gt;+#
&lt;br&gt;+# $Id$
&lt;br&gt;+#
&lt;br&gt;+
&lt;br&gt;+# DO NOT TRANSLATE &amp; DO NOT INCLUDE IN L10N PROPERTIES FILE
&lt;br&gt;+toolbox.label.portlets = Portlets
&lt;br&gt;+toolbox.label.layout = Layout
&lt;br&gt;+toolbox.label.theme = Theme
&lt;br&gt;+toolbox.label.widget = Widgets
&lt;br&gt;+toolbox.label.search = Search
&lt;br&gt;+toolbox.label.page = Page
&lt;br&gt;+toolbox.label.moveFirst = &amp;lt;&amp;lt;
&lt;br&gt;+toolbox.label.movePrev = &amp;lt;
&lt;br&gt;+toolbox.label.moveNext = &amp;gt;
&lt;br&gt;+toolbox.label.moveLast = &amp;gt;&amp;gt;
&lt;br&gt;+toolbox.label.preview = Preview
&lt;br&gt;+toolbox.label.add = Add
&lt;br&gt;+toolbox.label.close = Close
&lt;br&gt;+
&lt;br&gt;+toolbox.message.chooseOne = Choose one
&lt;br&gt;&lt;br&gt;Propchange: portals/jetspeed-2/applications/j2-admin/trunk/src/main/resources/org/apache/jetspeed/portlets/toolbox/resources/JetspeedToolboxResources.properties
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:eol-style = native
&lt;br&gt;&lt;br&gt;Propchange: portals/jetspeed-2/applications/j2-admin/trunk/src/main/resources/org/apache/jetspeed/portlets/toolbox/resources/JetspeedToolboxResources.properties
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:keywords = Id
&lt;br&gt;&lt;br&gt;Propchange: portals/jetspeed-2/applications/j2-admin/trunk/src/main/resources/org/apache/jetspeed/portlets/toolbox/resources/JetspeedToolboxResources.properties
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; svn:mime-type = text/plain
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml?rev=891831&amp;r1=891830&amp;r2=891831&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml?rev=891831&amp;r1=891830&amp;r2=891831&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml (original)
&lt;br&gt;+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml Thu Dec 17 18:41:17 2009
&lt;br&gt;@@ -2158,6 +2158,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;portlet-mode&amp;gt;EDIT&amp;lt;/portlet-mode&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/supports&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;supported-locale&amp;gt;en&amp;lt;/supported-locale&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;resource-bundle&amp;gt;org.apache.jetspeed.portlets.toolbox.resources.JetspeedToolboxResources&amp;lt;/resource-bundle&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;portlet-info&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;title&amp;gt;Jetspeed Toolbox&amp;lt;/title&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;short-title&amp;gt;Toolbox&amp;lt;/short-title&amp;gt;
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp?rev=891831&amp;r1=891830&amp;r2=891831&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp?rev=891831&amp;r1=891830&amp;r2=891831&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp (original)
&lt;br&gt;+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp Thu Dec 17 18:41:17 2009
&lt;br&gt;@@ -30,6 +30,8 @@
&lt;br&gt;&amp;nbsp;&amp;lt;%@ taglib uri=&amp;quot;&lt;a href=&quot;http://java.sun.com/portlet_2_0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/portlet_2_0&lt;/a&gt;&amp;quot; prefix=&amp;quot;portlet&amp;quot;%&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;&amp;lt;portlet:defineObjects/&amp;gt;
&lt;br&gt;+&amp;lt;fmt:setBundle basename=&amp;quot;org.apache.jetspeed.portlets.toolbox.resources.JetspeedToolboxResources&amp;quot; /&amp;gt;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;&amp;lt;c_rt:set var=&amp;quot;requestContext&amp;quot; value=&amp;quot;&amp;lt;%=request.getAttribute(RequestContext.REQUEST_PORTALENV)%&amp;gt;&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;c:set var=&amp;quot;portalContextPath&amp;quot; value=&amp;quot;${requestContext.request.contextPath}&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;c:set var=&amp;quot;portalPagePath&amp;quot; value=&amp;quot;${requestContext.portalURL.path}&amp;quot;/&amp;gt;
&lt;br&gt;@@ -42,13 +44,13 @@
&lt;br&gt;&amp;nbsp;&amp;lt;table style=&amp;quot;border-collapse: collapse; &amp;nbsp;width: 100%; margin-top: 0px; margin-bottom: 0px; float: left;&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td class=&amp;quot;portlet-section-subheader&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;a href=&amp;quot;#&amp;quot; id=&amp;quot;&amp;lt;portlet:namespace/&amp;gt;portletsTabAction&amp;quot;&amp;gt;Portlets&amp;lt;/a&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;a href=&amp;quot;#&amp;quot; id=&amp;quot;&amp;lt;portlet:namespace/&amp;gt;portletsTabAction&amp;quot;&amp;gt;&amp;lt;fmt:message key=&amp;quot;toolbox.label.portlets&amp;quot;/&amp;gt;&amp;lt;/a&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;a href=&amp;quot;#&amp;quot; id=&amp;quot;&amp;lt;portlet:namespace/&amp;gt;layoutTabAction&amp;quot;&amp;gt;Layout&amp;lt;/a&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;a href=&amp;quot;#&amp;quot; id=&amp;quot;&amp;lt;portlet:namespace/&amp;gt;layoutTabAction&amp;quot;&amp;gt;&amp;lt;fmt:message key=&amp;quot;toolbox.label.layout&amp;quot;/&amp;gt;&amp;lt;/a&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;a href=&amp;quot;#&amp;quot; id=&amp;quot;&amp;lt;portlet:namespace/&amp;gt;themeTabAction&amp;quot;&amp;gt;Theme&amp;lt;/a&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;a href=&amp;quot;#&amp;quot; id=&amp;quot;&amp;lt;portlet:namespace/&amp;gt;themeTabAction&amp;quot;&amp;gt;&amp;lt;fmt:message key=&amp;quot;toolbox.label.theme&amp;quot;/&amp;gt;&amp;lt;/a&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;a href=&amp;quot;#&amp;quot; id=&amp;quot;&amp;lt;portlet:namespace/&amp;gt;widgetsTabAction&amp;quot;&amp;gt;Widgets&amp;lt;/a&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;a href=&amp;quot;#&amp;quot; id=&amp;quot;&amp;lt;portlet:namespace/&amp;gt;widgetsTabAction&amp;quot;&amp;gt;&amp;lt;fmt:message key=&amp;quot;toolbox.label.widget&amp;quot;/&amp;gt;&amp;lt;/a&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/td&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;/table&amp;gt;
&lt;br&gt;@@ -56,19 +58,19 @@
&lt;br&gt;&amp;nbsp;&amp;lt;form id=&amp;quot;&amp;lt;portlet:namespace/&amp;gt;form&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;table id=&amp;quot;&amp;lt;portlet:namespace/&amp;gt;portletsTab&amp;quot; style=&amp;quot;display: none; border-collapse: collapse; &amp;nbsp;width: 100%; margin-top: 0px; margin-bottom: 0px; float: left;&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;th class=&amp;quot;portlet-section-header&amp;quot;&amp;gt;Portlets&amp;lt;/th&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;th class=&amp;quot;portlet-section-header&amp;quot;&amp;gt;&amp;lt;fmt:message key=&amp;quot;toolbox.label.portlets&amp;quot;/&amp;gt;&amp;lt;/th&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td class=&amp;quot;portlet-section-subheader&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;query&amp;quot; size=&amp;quot;15&amp;quot; value=&amp;quot;&amp;quot; &amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Search&amp;quot; /&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;&amp;lt;fmt:message key=&amp;quot;toolbox.label.search&amp;quot;/&amp;gt;&amp;quot; /&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/td&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td class=&amp;quot;portlet-section-subheader&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;select id=&amp;quot;&amp;lt;portlet:namespace/&amp;gt;categories&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;option value=&amp;quot;&amp;quot;&amp;gt;Choose a category&amp;lt;/option&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;option value=&amp;quot;&amp;quot;&amp;gt;&amp;lt;fmt:message key=&amp;quot;toolbox.message.chooseOne&amp;quot;/&amp;gt;&amp;lt;/option&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;c:forEach var=&amp;quot;category&amp;quot; items=&amp;quot;${categories}&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;option value=&amp;quot;${category}&amp;quot; keywords=&amp;quot;${categoryKeywords[category]}&amp;quot;&amp;gt;${category}&amp;lt;/option&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/c:forEach&amp;gt;
&lt;br&gt;@@ -85,14 +87,13 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td class=&amp;quot;portlet-section-subheader&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;div id=&amp;quot;&amp;lt;portlet:namespace/&amp;gt;pageNavBar&amp;quot; class=&amp;quot;jstbPageNavBar&amp;quot;&amp;gt;
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;jstbPageNav&amp;quot; pageIndex=&amp;quot;first&amp;quot;&amp;gt;&amp;lt;&amp;lt;&amp;lt;/a&amp;gt;
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;jstbPageNav&amp;quot; pageIndex=&amp;quot;prev&amp;quot;&amp;gt;&amp;lt;&amp;lt;/a&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;jstbPageNav&amp;quot; pageIndex=&amp;quot;first&amp;quot;&amp;gt;&amp;lt;fmt:message key=&amp;quot;toolbox.label.moveFirst&amp;quot;/&amp;gt;&amp;lt;/a&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;jstbPageNav&amp;quot; pageIndex=&amp;quot;prev&amp;quot;&amp;gt;&amp;lt;fmt:message key=&amp;quot;toolbox.label.movePrev&amp;quot;/&amp;gt;&amp;lt;/a&amp;gt;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;select id=&amp;quot;&amp;lt;portlet:namespace/&amp;gt;pageNavIndex&amp;quot;&amp;gt;
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;option value=&amp;quot;&amp;quot;&amp;gt;Page&amp;lt;/option&amp;gt;
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/select&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;option value=&amp;quot;&amp;quot;&amp;gt;&amp;lt;fmt:message key=&amp;quot;toolbox.label.page&amp;quot;/&amp;gt;&amp;lt;/option&amp;gt;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/select&amp;gt;
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;jstbPageNav&amp;quot; pageIndex=&amp;quot;next&amp;quot;&amp;gt;&amp;gt;&amp;lt;/a&amp;gt;
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;jstbPageNav&amp;quot; pageIndex=&amp;quot;last&amp;quot;&amp;gt;&amp;gt;&amp;gt;&amp;lt;/a&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;jstbPageNav&amp;quot; pageIndex=&amp;quot;next&amp;quot;&amp;gt;&amp;lt;fmt:message key=&amp;quot;toolbox.label.moveNext&amp;quot;/&amp;gt;&amp;lt;/a&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;jstbPageNav&amp;quot; pageIndex=&amp;quot;last&amp;quot;&amp;gt;&amp;lt;fmt:message key=&amp;quot;toolbox.label.moveLast&amp;quot;/&amp;gt;&amp;lt;/a&amp;gt;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/div&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/td&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt;
&lt;br&gt;@@ -115,8 +116,8 @@
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;td class=&amp;quot;portlet-section-body&amp;quot;&amp;gt;
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;a href=&amp;quot;#&amp;quot; name=&amp;quot;preview&amp;quot;&amp;gt;Preview&amp;lt;/a&amp;gt; &amp;nbsp;
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;a href=&amp;quot;#&amp;quot; name=&amp;quot;add&amp;quot;&amp;gt;Add&amp;lt;/a&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;a href=&amp;quot;#&amp;quot; name=&amp;quot;preview&amp;quot;&amp;gt;&amp;lt;fmt:message key=&amp;quot;toolbox.label.preview&amp;quot;/&amp;gt;&amp;lt;/a&amp;gt; &amp;nbsp;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;a href=&amp;quot;#&amp;quot; name=&amp;quot;add&amp;quot;&amp;gt;&amp;lt;fmt:message key=&amp;quot;toolbox.label.add&amp;quot;/&amp;gt;&amp;lt;/a&amp;gt;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/td&amp;gt;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/table&amp;gt;
&lt;br&gt;@@ -124,7 +125,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;&amp;lt;table id=&amp;quot;&amp;lt;portlet:namespace/&amp;gt;layoutTab&amp;quot; style=&amp;quot;display: none; border-collapse: collapse; &amp;nbsp;width: 100%; margin-top: 0px; margin-bottom: 0px; float: left;&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;th class=&amp;quot;portlet-section-header&amp;quot; colspan=&amp;quot;2&amp;quot;&amp;gt;Layouts&amp;lt;/th&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;th class=&amp;quot;portlet-section-header&amp;quot; colspan=&amp;quot;2&amp;quot;&amp;gt;&amp;lt;fmt:message key=&amp;quot;toolbox.label.layout&amp;quot;/&amp;gt;&amp;lt;/th&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;c:forEach var=&amp;quot;layout&amp;quot; items=&amp;quot;${layouts}&amp;quot;&amp;gt; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;@@ -156,7 +157,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;&amp;lt;table id=&amp;quot;&amp;lt;portlet:namespace/&amp;gt;themeTab&amp;quot; style=&amp;quot;display: none; border-collapse: collapse; &amp;nbsp;width: 100%; margin-top: 0px; margin-bottom: 0px; float: left;&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;th class=&amp;quot;portlet-section-header&amp;quot; colspan=&amp;quot;2&amp;quot;&amp;gt;Themes&amp;lt;/th&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;th class=&amp;quot;portlet-section-header&amp;quot; colspan=&amp;quot;2&amp;quot;&amp;gt;&amp;lt;fmt:message key=&amp;quot;toolbox.label.theme&amp;quot;/&amp;gt;&amp;lt;/th&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;c:forEach var=&amp;quot;theme&amp;quot; items=&amp;quot;${themes}&amp;quot;&amp;gt; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;@@ -178,7 +179,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;&amp;lt;table id=&amp;quot;&amp;lt;portlet:namespace/&amp;gt;widgetsTab&amp;quot; style=&amp;quot;display: none; border-collapse: collapse; &amp;nbsp;width: 100%; margin-top: 0px; margin-bottom: 0px; float: left;&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;th class=&amp;quot;portlet-section-header&amp;quot; colspan=&amp;quot;1&amp;quot;&amp;gt;Widgets&amp;lt;/th&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;th class=&amp;quot;portlet-section-header&amp;quot; colspan=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;fmt:message key=&amp;quot;toolbox.label.widget&amp;quot;/&amp;gt;&amp;lt;/th&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;th class=&amp;quot;portlet-section-header&amp;quot; colspan=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;/th&amp;gt;
&lt;br&gt;@@ -187,7 +188,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;&amp;lt;div id=&amp;quot;&amp;lt;portlet:namespace/&amp;gt;previewPanel&amp;quot; style=&amp;quot;BACKGROUND: #eee; BORDER: lightgrey solid 1px; POSITION: absolute; Z-INDEX: 1000; VISIBILITY: hidden&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;
&lt;br&gt;- &amp;nbsp;&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Close&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;&amp;lt;fmt:message key=&amp;quot;toolbox.label.close&amp;quot;/&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;/div&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;
&lt;br&gt;@@ -496,6 +497,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;var closePreviewPanel = function(e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var panel = Y.Node.one(&amp;quot;#&amp;lt;portlet:namespace/&amp;gt;previewPanel&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Y.Node.getDOMNode(panel).style.visibility = &amp;quot;hidden&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e.halt();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;};
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Y.on(&amp;quot;click&amp;quot;, switchTab, &amp;quot;#&amp;lt;portlet:namespace/&amp;gt;portletsTabAction&amp;quot;);
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26832962&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26832962&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Jetspeed---Dev-f199.html&quot; embed=&quot;fixTarget[199]&quot; target=&quot;_top&quot; &gt;Jetspeed - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r891831---in--portals-jetspeed-2-applications-j2-admin-trunk-src-main%3A-resources-org-apache-jetspeed-portlets-toolbox--resources-org-apache-jetspeed-portlets-toolbox-resources--webapp-WEB-INF--webapp-WEB-INF-view-toolbox--tp26832962p26832962.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26832061</id>
	<title>svn commit: r891812 - /portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp</title>
	<published>2009-12-17T09:44:40Z</published>
	<updated>2009-12-17T09:44:40Z</updated>
	<author>
		<name>woonsan</name>
	</author>
	<content type="html">Author: woonsan
&lt;br&gt;Date: Thu Dec 17 17:44:40 2009
&lt;br&gt;New Revision: 891812
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=891812&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=891812&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;JS2-1057: Adding preview for portlets
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp?rev=891812&amp;r1=891811&amp;r2=891812&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp?rev=891812&amp;r1=891811&amp;r2=891812&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp (original)
&lt;br&gt;+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp Thu Dec 17 17:44:40 2009
&lt;br&gt;@@ -115,8 +115,8 @@
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;td class=&amp;quot;portlet-section-body&amp;quot;&amp;gt;
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Preview&amp;lt;/a&amp;gt; &amp;nbsp;
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Add&amp;lt;/a&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;a href=&amp;quot;#&amp;quot; name=&amp;quot;preview&amp;quot;&amp;gt;Preview&amp;lt;/a&amp;gt; &amp;nbsp;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;a href=&amp;quot;#&amp;quot; name=&amp;quot;add&amp;quot;&amp;gt;Add&amp;lt;/a&amp;gt;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/td&amp;gt;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/table&amp;gt;
&lt;br&gt;@@ -185,8 +185,13 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;/table&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+&amp;lt;div id=&amp;quot;&amp;lt;portlet:namespace/&amp;gt;previewPanel&amp;quot; style=&amp;quot;BACKGROUND: #eee; BORDER: lightgrey solid 1px; POSITION: absolute; Z-INDEX: 1000; VISIBILITY: hidden&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Close&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;
&lt;br&gt;+&amp;lt;/div&amp;gt;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;
&lt;br&gt;-YUI().use('jetui-portal', 'io', 'json', 'node-base', 'cookie', function(Y) {
&lt;br&gt;+YUI().use('jetui-portal', 'io', 'json', 'node', 'cookie', function(Y) {
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;var pagination = {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;portlet : { uri : null, totalSize : 0, pageSize : ${portletPageSize}, beginIndex : 0 },
&lt;br&gt;@@ -315,15 +320,18 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;c:choose&amp;gt;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;c:when test=&amp;quot;${editAccess}&amp;quot;&amp;gt;
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Y.Node.getDOMNode(clone.all(&amp;quot;a&amp;quot;).item(1)).setAttribute(&amp;quot;portletUniqueName&amp;quot;, def.uniqueName);
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;clone.all(&amp;quot;a&amp;quot;).item(1).on(&amp;quot;click&amp;quot;, addPortlet);
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var addLink = clone.one(&amp;quot;[name='add']&amp;quot;);
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Y.Node.getDOMNode(addLink).setAttribute(&amp;quot;portletUniqueName&amp;quot;, def.uniqueName);
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;addLink.on(&amp;quot;click&amp;quot;, addPortlet);
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/c:when&amp;gt;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;c:otherwise&amp;gt;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;clone.all(&amp;quot;a&amp;quot;).item(1).remove();
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/c:otherwise&amp;gt;
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/c:choose&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// TODO: add handlers for preview
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var previewLink = clone.one(&amp;quot;[name='preview']&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Y.Node.getDOMNode(previewLink).setAttribute(&amp;quot;portletUniqueName&amp;quot;, def.uniqueName);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;previewLink.on(&amp;quot;click&amp;quot;, previewPortlet);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;clone.set(&amp;quot;id&amp;quot;, &amp;quot;&amp;lt;portlet:namespace/&amp;gt;portletItem-&amp;quot; + def.uniqueName);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;@@ -456,6 +464,40 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e.halt();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;};
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;var onPreviewPortletComplete = function(id, o, args) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var point = args.complete;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var panel = Y.Node.one(&amp;quot;#&amp;lt;portlet:namespace/&amp;gt;previewPanel&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var subPanels = panel.all(&amp;quot;DIV&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;subPanels.item(0).setContent(o.responseText);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var panelDOMNode = Y.Node.getDOMNode(panel);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var panelWidth = Math.max(panelDOMNode.offsetWidth, 200);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var panelHeight = Math.max(panelDOMNode.offsetHeight, 150);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var windowWidth = window.innerWidth;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var windowHeight = window.innerHeight;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (point[0] &amp;gt; windowWidth - panelWidth) point[0] = windowWidth - panelWidth;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (point[1] &amp;gt; windowHeight - panelHeight) point[1] = windowHeight - panelHeight;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;panel.setXY(point);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;panelDOMNode.style.visibility = &amp;quot;visible&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;};
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;var previewPortlet = function(e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var a = Y.Node.getDOMNode(e.target);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var portletUniqueName = a.getAttribute(&amp;quot;portletUniqueName&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (portletUniqueName) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var uri = &amp;quot;${portalContextPath}/portlet/?mode=preview&amp;portlet=&amp;quot; + portletUniqueName + &amp;quot;&amp;entity=&amp;quot; + portletUniqueName;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var request = Y.io(uri, { on: { complete: onPreviewPortletComplete }, arguments: { complete: [ e.pageX, e.pageY ] } });
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e.halt();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;};
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;var closePreviewPanel = function(e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var panel = Y.Node.one(&amp;quot;#&amp;lt;portlet:namespace/&amp;gt;previewPanel&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Y.Node.getDOMNode(panel).style.visibility = &amp;quot;hidden&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;};
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Y.on(&amp;quot;click&amp;quot;, switchTab, &amp;quot;#&amp;lt;portlet:namespace/&amp;gt;portletsTabAction&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Y.on(&amp;quot;click&amp;quot;, switchTab, &amp;quot;#&amp;lt;portlet:namespace/&amp;gt;layoutTabAction&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Y.on(&amp;quot;click&amp;quot;, switchTab, &amp;quot;#&amp;lt;portlet:namespace/&amp;gt;themeTabAction&amp;quot;);
&lt;br&gt;@@ -476,5 +518,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;switchTab(tabId);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Y.Node.one(&amp;quot;#&amp;lt;portlet:namespace/&amp;gt;previewPanel&amp;quot;).one(&amp;quot;A&amp;quot;).on(&amp;quot;click&amp;quot;, closePreviewPanel);
&lt;br&gt;&amp;nbsp;});
&lt;br&gt;&amp;nbsp;&amp;lt;/script&amp;gt;
&lt;br&gt;\ No newline at end of file
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26832061&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26832061&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Jetspeed---Dev-f199.html&quot; embed=&quot;fixTarget[199]&quot; target=&quot;_top&quot; &gt;Jetspeed - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r891812----portals-jetspeed-2-applications-j2-admin-trunk-src-main-webapp-WEB-INF-view-toolbox-toolbox.jsp-tp26832061p26832061.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26832043</id>
	<title>svn commit: r891811 - in /portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp: javascript/jetspeed/jetui/jetui-portal.js jetui/engine/portal.js</title>
	<published>2009-12-17T09:43:35Z</published>
	<updated>2009-12-17T09:43:35Z</updated>
	<author>
		<name>woonsan</name>
	</author>
	<content type="html">Author: woonsan
&lt;br&gt;Date: Thu Dec 17 17:43:34 2009
&lt;br&gt;New Revision: 891811
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=891811&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=891811&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;JS2-1084: Replacing the import of &amp;quot;node-base&amp;quot; by &amp;quot;node&amp;quot;. Without &amp;quot;node&amp;quot;, we cannot make use of many node apis such as &amp;quot;setX()&amp;quot; or &amp;quot;setY()&amp;quot;.
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js?rev=891811&amp;r1=891810&amp;r2=891811&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js?rev=891811&amp;r1=891810&amp;r2=891811&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js Thu Dec 17 17:43:34 2009
&lt;br&gt;@@ -626,4 +626,4 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return layout;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;};
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;-}, '3.0.0', {requires:['dd', 'io', 'dataschema-json', 'node-base', 'node-menunav']});
&lt;br&gt;+}, '3.0.0', {requires:['dd', 'io', 'dataschema-json', 'node', 'node-menunav']});
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js?rev=891811&amp;r1=891810&amp;r2=891811&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js?rev=891811&amp;r1=891810&amp;r2=891811&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js Thu Dec 17 17:43:34 2009
&lt;br&gt;@@ -1,5 +1,5 @@
&lt;br&gt;&amp;nbsp;//Use loader to grab the modules needed
&lt;br&gt;-YUI(JETUI_YUI).use('jetui-portal', 'console', 'dd', 'anim', 'io', 'datatype-xml', 'dataschema-xml', 'dataschema-json', 'node-base', 'node-menunav', function(Y) {
&lt;br&gt;+YUI(JETUI_YUI).use('jetui-portal', 'console', 'dd', 'anim', 'io', 'datatype-xml', 'dataschema-xml', 'dataschema-json', 'node', 'node-menunav', function(Y) {
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;	var config = JETUI_YUI.config;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Y.log(&amp;quot;Starting up JETUI &amp;quot; + &amp;nbsp;config.engine + &amp;quot; engine...&amp;quot;);
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26832043&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26832043&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Jetspeed---Dev-f199.html&quot; embed=&quot;fixTarget[199]&quot; target=&quot;_top&quot; &gt;Jetspeed - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r891811---in--portals-jetspeed-2-portal-trunk-applications-jetspeed-src-main-webapp%3A-javascript-jetspeed-jetui-jetui-portal.js-jetui-engine-portal.js-tp26832043p26832043.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26828417</id>
	<title>[jira] Updated: (JS2-1091) Admin to set some portlets to out-of-service state at runtime.</title>
	<published>2009-12-17T06:01:19Z</published>
	<updated>2009-12-17T06:01:19Z</updated>
	<author>
		<name>Jetspeed - Dev mailing list</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/JS2-1091?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JS2-1091?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Woonsan Ko updated JS2-1091:
&lt;br&gt;----------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Fix Version/s: 2.1.4
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2.1.3
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Admin to set some portlets to out-of-service state at runtime.
&lt;br&gt;&amp;gt; --------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JS2-1091
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JS2-1091&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JS2-1091&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Jetspeed 2
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Improvement
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: Admin Portlets
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Woonsan Ko
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Woonsan Ko
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 2.1.3, 2.1.4, 2.2.1
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The PortletTrackingManager renders &amp;quot;Portlet is not responding and has been taken out of service.&amp;quot; when a portlet window is timed-out.
&lt;br&gt;&amp;gt; I think we can imporove this with the following features:
&lt;br&gt;&amp;gt; &amp;nbsp; - Administrator can mark a portlet or a portlet application as &amp;quot;out-of-service&amp;quot; in a UI.
&lt;br&gt;&amp;gt; &amp;nbsp; - PortletTrackingManager read the above information as well to decide if the portlet window is out-of-service.
&lt;br&gt;&amp;gt; &amp;nbsp; - The message for the out-of-service portlets can be configured.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26828417&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26828417&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Jetspeed---Dev-f199.html&quot; embed=&quot;fixTarget[199]&quot; target=&quot;_top&quot; &gt;Jetspeed - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-jira--Created%3A-%28JS2-1091%29-Admin-to-set-some-portlets-to-out-of-service-state-at-runtime.-tp26828323p26828417.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26828347</id>
	<title>[jira] Updated: (JS2-1082) What are the layout or contextual path for user, guest, admin, jsp (wml, html, and xhtml) on Jetspeed 2.2.0</title>
	<published>2009-12-17T05:57:18Z</published>
	<updated>2009-12-17T05:57:18Z</updated>
	<author>
		<name>Jetspeed - Dev mailing list</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/JS2-1082?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JS2-1082?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Woonsan Ko updated JS2-1082:
&lt;br&gt;----------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Fix Version/s: &amp;nbsp; &amp;nbsp; (was: 2.2.0)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2.2.1
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; What are the layout or contextual path for user, guest, admin, jsp (wml, html, and xhtml) on Jetspeed 2.2.0
&lt;br&gt;&amp;gt; -----------------------------------------------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JS2-1082
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JS2-1082&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JS2-1082&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Jetspeed 2
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: PSML
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Environment: Windows Vista (OS), Lenovo T500 (HW) &amp; Tomcat 6.0.16, Maven 2.2.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Musa
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Priority: Critical
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 2.2.1
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; Original Estimate: 48h
&lt;br&gt;&amp;gt; &amp;nbsp;Remaining Estimate: 48h
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I need help with default paths for user, guest, admin to store their default pages, so that the different user can have the different default psml.
&lt;br&gt;&amp;gt; Another help I need is based on WML, HTML, XHTML using JSP's; where do I store those files for different device?
&lt;br&gt;&amp;gt; I am currently using Jetspeed-2.2.0 which is much different than Jetspeed 2.1.3 that I have used before. Where can I get the documentation on Jetspeed 2.2.0 besides &lt;a href=&quot;http://portals.apache.org/jetspeed-2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://portals.apache.org/jetspeed-2&lt;/a&gt;&amp;nbsp;?
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26828347&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26828347&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Jetspeed---Dev-f199.html&quot; embed=&quot;fixTarget[199]&quot; target=&quot;_top&quot; &gt;Jetspeed - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-jira--Created%3A-%28JS2-1082%29-What-are-the-layout-or-contextual-path-for-user%2C-guest%2C-admin%2C-jsp-%28wml%2C-html%2C-and-xhtml%29-on-Jetspeed-2.2.0-tp26313209p26828347.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26828323</id>
	<title>[jira] Created: (JS2-1091) Admin to set some portlets to out-of-service state at runtime.</title>
	<published>2009-12-17T05:55:18Z</published>
	<updated>2009-12-17T05:55:18Z</updated>
	<author>
		<name>Jetspeed - Dev mailing list</name>
	</author>
	<content type="html">Admin to set some portlets to out-of-service state at runtime.
&lt;br&gt;--------------------------------------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Key: JS2-1091
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JS2-1091&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JS2-1091&lt;/a&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Project: Jetspeed 2
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Issue Type: Improvement
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Components: Admin Portlets
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Reporter: Woonsan Ko
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Assignee: Woonsan Ko
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Fix For: 2.2.1
&lt;br&gt;&lt;br&gt;&lt;br&gt;The PortletTrackingManager renders &amp;quot;Portlet is not responding and has been taken out of service.&amp;quot; when a portlet window is timed-out.
&lt;br&gt;I think we can imporove this with the following features:
&lt;br&gt;&amp;nbsp; - Administrator can mark a portlet or a portlet application as &amp;quot;out-of-service&amp;quot; in a UI.
&lt;br&gt;&amp;nbsp; - PortletTrackingManager read the above information as well to decide if the portlet window is out-of-service.
&lt;br&gt;&amp;nbsp; - The message for the out-of-service portlets can be configured.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26828323&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26828323&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Jetspeed---Dev-f199.html&quot; embed=&quot;fixTarget[199]&quot; target=&quot;_top&quot; &gt;Jetspeed - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-jira--Created%3A-%28JS2-1091%29-Admin-to-set-some-portlets-to-out-of-service-state-at-runtime.-tp26828323p26828323.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26828164</id>
	<title>svn commit: r891699 - /portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml</title>
	<published>2009-12-17T05:43:05Z</published>
	<updated>2009-12-17T05:43:05Z</updated>
	<author>
		<name>woonsan</name>
	</author>
	<content type="html">Author: woonsan
&lt;br&gt;Date: Thu Dec 17 13:43:05 2009
&lt;br&gt;New Revision: 891699
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=891699&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=891699&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;JS2-1057: Adding custom portlet modes
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml?rev=891699&amp;r1=891698&amp;r2=891699&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml?rev=891699&amp;r1=891698&amp;r2=891699&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml (original)
&lt;br&gt;+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml Thu Dec 17 13:43:05 2009
&lt;br&gt;@@ -2358,20 +2358,26 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/preference&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/portlet-preferences&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/portlet&amp;gt;
&lt;br&gt;-
&lt;br&gt;+ &amp;nbsp;
&lt;br&gt;+ &amp;nbsp;&amp;lt;custom-portlet-mode&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;Custom About Mode&amp;lt;/description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;portlet-mode&amp;gt;about&amp;lt;/portlet-mode&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/custom-portlet-mode&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;custom-portlet-mode&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;a Custom Config Mode&amp;lt;/description&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;Custom Config Mode&amp;lt;/description&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;portlet-mode&amp;gt;config&amp;lt;/portlet-mode&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/custom-portlet-mode&amp;gt;
&lt;br&gt;- &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;custom-portlet-mode&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;a Custom Edit_defaults Mode&amp;lt;/description&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;Custom Edit_defaults Mode&amp;lt;/description&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;portlet-mode&amp;gt;edit_defaults&amp;lt;/portlet-mode&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/custom-portlet-mode&amp;gt;
&lt;br&gt;- &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;custom-portlet-mode&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;a Custom Preview Mode&amp;lt;/description&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;Custom Preview Mode&amp;lt;/description&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;portlet-mode&amp;gt;preview&amp;lt;/portlet-mode&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/custom-portlet-mode&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;custom-portlet-mode&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;Custom Print Mode&amp;lt;/description&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;portlet-mode&amp;gt;print&amp;lt;/portlet-mode&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/custom-portlet-mode&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp;&amp;lt;/portlet-app&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26828164&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26828164&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Jetspeed---Dev-f199.html&quot; embed=&quot;fixTarget[199]&quot; target=&quot;_top&quot; &gt;Jetspeed - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r891699----portals-jetspeed-2-applications-j2-admin-trunk-src-main-webapp-WEB-INF-portlet.xml-tp26828164p26828164.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26827053</id>
	<title>svn commit: r891663 - /portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp</title>
	<published>2009-12-17T04:03:26Z</published>
	<updated>2009-12-17T04:03:26Z</updated>
	<author>
		<name>woonsan</name>
	</author>
	<content type="html">Author: woonsan
&lt;br&gt;Date: Thu Dec 17 12:03:20 2009
&lt;br&gt;New Revision: 891663
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=891663&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=891663&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;JS2-1057: Fixing keywords search
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp?rev=891663&amp;r1=891662&amp;r2=891663&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp?rev=891663&amp;r1=891662&amp;r2=891663&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp (original)
&lt;br&gt;+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp Thu Dec 17 12:03:20 2009
&lt;br&gt;@@ -347,6 +347,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;var loadPortletsInCategory = function(e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var category = ('string' == typeof(e) ? e : null);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var keywords = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!category) {
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var categories = Y.Node.getDOMNode(e.target);
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;category = categories.options[categories.selectedIndex].value;
&lt;br&gt;@@ -354,10 +355,17 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!category) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var option = Y.Node.one(&amp;quot;#&amp;lt;portlet:namespace/&amp;gt;categories&amp;quot;).one(&amp;quot;[value='&amp;quot; + category + &amp;quot;']&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (option) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;keywords = option.getAttribute(&amp;quot;keywords&amp;quot;).replace(/\s*,\s*/g, &amp;quot; | &amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!keywords) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;keywords = category;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Y.Cookie.set(&amp;quot;toolboxcat&amp;quot;, category);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var uri = &amp;quot;${portalContextPath}/services/portletregistry/definition/?_type=json&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;uri += &amp;quot;&amp;max=&amp;quot; + pagination.portlet.pageSize + &amp;quot;&amp;begin=0&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;uri += &amp;quot;&amp;query=&amp;quot; + category;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;uri += &amp;quot;&amp;query=&amp;quot; + encodeURIComponent(keywords);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pagination.portlet.uri = uri;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var request = Y.io(uri, { on: { complete: onLoadPortletComplete } });
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Y.Node.getDOMNode(Y.Node.one(&amp;quot;#&amp;lt;portlet:namespace/&amp;gt;form&amp;quot;)).query.value = &amp;quot;&amp;quot;;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26827053&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26827053&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Jetspeed---Dev-f199.html&quot; embed=&quot;fixTarget[199]&quot; target=&quot;_top&quot; &gt;Jetspeed - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r891663----portals-jetspeed-2-applications-j2-admin-trunk-src-main-webapp-WEB-INF-view-toolbox-toolbox.jsp-tp26827053p26827053.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26827040</id>
	<title>svn commit: r891662 - /portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java</title>
	<published>2009-12-17T04:02:09Z</published>
	<updated>2009-12-17T04:02:09Z</updated>
	<author>
		<name>woonsan</name>
	</author>
	<content type="html">Author: woonsan
&lt;br&gt;Date: Thu Dec 17 12:02:08 2009
&lt;br&gt;New Revision: 891662
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=891662&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=891662&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;JS2-1057: Fixing keywords search
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java?rev=891662&amp;r1=891661&amp;r2=891662&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java?rev=891662&amp;r1=891661&amp;r2=891662&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java Thu Dec 17 12:02:08 2009
&lt;br&gt;@@ -85,12 +85,12 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;@GET
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;@Path(&amp;quot;/application/{path:.*}&amp;quot;)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public PortletApplicationBeanCollection getPortletApplication(@Context HttpServletRequest servletRequest,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @Context UriInfo uriInfo,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @PathParam(&amp;quot;path&amp;quot;) List&amp;lt;PathSegment&amp;gt; pathSegments,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @QueryParam(&amp;quot;query&amp;quot;) String queryParam, 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @QueryParam(&amp;quot;begin&amp;quot;) String beginIndexParam,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @QueryParam(&amp;quot;max&amp;quot;) String maxResultsParam)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public PortletApplicationBeanCollection getPortletApplications(@Context HttpServletRequest servletRequest,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @Context UriInfo uriInfo,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @PathParam(&amp;quot;path&amp;quot;) List&amp;lt;PathSegment&amp;gt; pathSegments,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @QueryParam(&amp;quot;query&amp;quot;) String queryParam, 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @QueryParam(&amp;quot;begin&amp;quot;) String beginIndexParam,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @QueryParam(&amp;quot;max&amp;quot;) String maxResultsParam)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String applicationName = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;@@ -109,7 +109,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!StringUtils.isBlank(queryParam))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String queryText = ParsedObject.FIELDNAME_TYPE + &amp;quot;:\&amp;quot;&amp;quot; + ParsedObject.OBJECT_TYPE_PORTLET_APPLICATION + &amp;quot;\&amp;quot; AND &amp;quot; + queryParam;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String queryText = 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ParsedObject.FIELDNAME_TYPE + &amp;quot;:\&amp;quot;&amp;quot; + ParsedObject.OBJECT_TYPE_PORTLET_APPLICATION + &amp;quot;\&amp;quot; AND ( &amp;quot; + queryParam + &amp;quot; )&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SearchResults searchResults = searchEngine.search(queryText);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;ParsedObject&amp;gt; searchResultList = searchResults.getResults();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;paBeans.setTotalSize(searchResultList.size());
&lt;br&gt;@@ -162,12 +163,12 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;@GET
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;@Path(&amp;quot;/definition/{path:.*}&amp;quot;)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public PortletDefinitionBeanCollection getPortletDefinition(@Context HttpServletRequest servletRequest,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @Context UriInfo uriInfo,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @PathParam(&amp;quot;path&amp;quot;) List&amp;lt;PathSegment&amp;gt; pathSegments, 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @QueryParam(&amp;quot;query&amp;quot;) String queryParam, 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @QueryParam(&amp;quot;begin&amp;quot;) String beginIndexParam,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @QueryParam(&amp;quot;max&amp;quot;) String maxResultsParam)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public PortletDefinitionBeanCollection getPortletDefinitions(@Context HttpServletRequest servletRequest,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @Context UriInfo uriInfo,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @PathParam(&amp;quot;path&amp;quot;) List&amp;lt;PathSegment&amp;gt; pathSegments, 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @QueryParam(&amp;quot;query&amp;quot;) String queryParam, 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @QueryParam(&amp;quot;begin&amp;quot;) String beginIndexParam,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @QueryParam(&amp;quot;max&amp;quot;) String maxResultsParam)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String applicationName = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String definitionName = null;
&lt;br&gt;@@ -198,7 +199,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String queryText = 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ParsedObject.FIELDNAME_TYPE + &amp;quot;:\&amp;quot;&amp;quot; + ParsedObject.OBJECT_TYPE_PORTLET + &amp;quot;\&amp;quot; &amp;quot; +
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;AND NOT &amp;quot; + ParsedObject.FIELDNAME_TYPE + &amp;quot;:\&amp;quot;&amp;quot; + ParsedObject.OBJECT_TYPE_PORTLET_APPLICATION + &amp;quot;\&amp;quot; &amp;quot; + 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;AND &amp;quot; + queryParam;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;AND ( &amp;quot; + queryParam + &amp;quot; )&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SearchResults searchResults = searchEngine.search(queryText);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;ParsedObject&amp;gt; searchResultList = searchResults.getResults();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ArrayList&amp;lt;PortletDefinition&amp;gt; searchedPortletDefinitions = new ArrayList&amp;lt;PortletDefinition&amp;gt;();
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26827040&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26827040&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Jetspeed---Dev-f199.html&quot; embed=&quot;fixTarget[199]&quot; target=&quot;_top&quot; &gt;Jetspeed - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r891662----portals-jetspeed-2-portal-trunk-components-jetspeed-portal-src-main-java-org-apache-jetspeed-services-rest-PortletRegistryService.java-tp26827040p26827040.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26824737</id>
	<title>[jira] Commented: (JS2-1090) Jetspeed 2.1 derby database becoming huge.</title>
	<published>2009-12-17T00:28:18Z</published>
	<updated>2009-12-17T00:28:18Z</updated>
	<author>
		<name>Jetspeed - Dev mailing list</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/JS2-1090?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12791845#action_12791845&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JS2-1090?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12791845#action_12791845&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Nishant Malviya commented on JS2-1090:
&lt;br&gt;--------------------------------------
&lt;br&gt;&lt;br&gt;Hi David,
&lt;br&gt;&amp;nbsp;
&lt;br&gt;Here is some more detail from our customer:
&lt;br&gt;&lt;br&gt;They have 85 users (3 built-in), 40 pages, 6 roles (5 built-in), 1 group (all users are members of this group and they don't really use this group anywhere). The built-in admin security constraint is assigned to 5 pages, so that only admin users can see those pages. All the other users see the same pages with the default security.
&lt;br&gt;regards
&lt;br&gt;&lt;br&gt;Nishant
&lt;br&gt;&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Jetspeed 2.1 derby database becoming huge.
&lt;br&gt;&amp;gt; ------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JS2-1090
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JS2-1090&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JS2-1090&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Jetspeed 2
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Task
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 2.1.1-RC
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Environment: Windows 2003 SP2
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Nishant Malviya
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 2.1.1-RC
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The customer has 2 portlet applications. one with 36 portlets and the second one with only 1 portlet. The customer is complaining that there are a couple .dat files that are taking up a large amount of space:
&lt;br&gt;&amp;gt; &amp;nbsp;...jetspeed\2.1\database\derby\productiondb\seg0:
&lt;br&gt;&amp;gt; c3c0.dat (12.5 GB)
&lt;br&gt;&amp;gt; c3d0.dat (8.78 GB)
&lt;br&gt;&amp;gt; There are 283 other *.dat files in the same folder of much smaller size. Does this amount of space seem reasonable for the amount of deployed portlets? &amp;nbsp;Is there any way to reduce this size?
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26824737&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26824737&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Jetspeed---Dev-f199.html&quot; embed=&quot;fixTarget[199]&quot; target=&quot;_top&quot; &gt;Jetspeed - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-jira--Created%3A-%28JS2-1090%29-Jetspeed-2.1-derby-database-becoming-huge.-tp26808162p26824737.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26824123</id>
	<title>svn commit: r891568 - in /portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages: apache_portals.link content.link</title>
	<published>2009-12-16T23:12:53Z</published>
	<updated>2009-12-16T23:12:53Z</updated>
	<author>
		<name>taylor-8</name>
	</author>
	<content type="html">Author: taylor
&lt;br&gt;Date: Thu Dec 17 07:12:53 2009
&lt;br&gt;New Revision: 891568
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=891568&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=891568&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;&lt;a href=&quot;http://issues.apache.org/jira/browse/JS2-1057&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://issues.apache.org/jira/browse/JS2-1057&lt;/a&gt;&lt;br&gt;example of new .dpsml menu -- click on Apache Portals link from Page Navigator
&lt;br&gt;&lt;br&gt;Added:
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/content.link
&lt;br&gt;Removed:
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/apache_portals.link
&lt;br&gt;&lt;br&gt;Added: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/content.link
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/content.link?rev=891568&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/content.link?rev=891568&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/content.link (added)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/content.link Thu Dec 17 07:12:53 2009
&lt;br&gt;@@ -0,0 +1,24 @@
&lt;br&gt;+&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&lt;br&gt;+&amp;lt;!--
&lt;br&gt;+Licensed to the Apache Software Foundation (ASF) under one or more
&lt;br&gt;+contributor license agreements. &amp;nbsp;See the NOTICE file distributed with
&lt;br&gt;+this work for additional information regarding copyright ownership.
&lt;br&gt;+The ASF licenses this file to You under the Apache License, Version 2.0
&lt;br&gt;+(the &amp;quot;License&amp;quot;); you may not use this file except in compliance with
&lt;br&gt;+the License. &amp;nbsp;You may obtain a copy of the License at
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+
&lt;br&gt;+Unless required by applicable law or agreed to in writing, software
&lt;br&gt;+distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&lt;br&gt;+See the License for the specific language governing permissions and
&lt;br&gt;+limitations under the License.
&lt;br&gt;+--&amp;gt;
&lt;br&gt;+&amp;lt;link target=&amp;quot;parent&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xmlns=&amp;quot;&lt;a href=&quot;http://portals.apache.org/jetspeed&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://portals.apache.org/jetspeed&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xmlns:xsi=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xsi:schemaLocation=&amp;quot;&lt;a href=&quot;http://portals.apache.org/jetspeed&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://portals.apache.org/jetspeed&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://portals.apache.org/jetspeed-2/2.1/schemas/link.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://portals.apache.org/jetspeed-2/2.1/schemas/link.xsd&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;lt;title&amp;gt;Apache Portals&amp;lt;/title&amp;gt;
&lt;br&gt;+ &amp;lt;url&amp;gt;/content/&amp;lt;/url&amp;gt;
&lt;br&gt;+&amp;lt;/link&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26824123&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26824123&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Jetspeed---Dev-f199.html&quot; embed=&quot;fixTarget[199]&quot; target=&quot;_top&quot; &gt;Jetspeed - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r891568---in--portals-jetspeed-2-portal-trunk-applications-jetspeed-src-main-webapp-WEB-INF-pages%3A-apache_portals.link-content.link-tp26824123p26824123.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26824113</id>
	<title>svn commit: r891567 - in /portals/jetspeed-2/applications/j2-admin/trunk/src/main: java/org/apache/jetspeed/portlets/spaces/BreadcrumbMenu.java java/org/apache/jetspeed/portlets/spaces/PageNavigator.java webapp/WEB-INF/view/spaces/page-navigator.jsp</title>
	<published>2009-12-16T23:11:44Z</published>
	<updated>2009-12-16T23:11:44Z</updated>
	<author>
		<name>taylor-8</name>
	</author>
	<content type="html">Author: taylor
&lt;br&gt;Date: Thu Dec 17 07:11:44 2009
&lt;br&gt;New Revision: 891567
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=891567&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=891567&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;&lt;a href=&quot;http://issues.apache.org/jira/browse/JS2-1057&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://issues.apache.org/jira/browse/JS2-1057&lt;/a&gt;&lt;br&gt;Start of new Page Navigator: Replacing demo PSML-Union implementation with a real meat-eating programmer's Site Menu implementation
&lt;br&gt;Still TODO: 
&lt;br&gt;* remove Space Services, doesn't seem needed 
&lt;br&gt;* add styles
&lt;br&gt;* menu operations (add,rename, delete), expand to submenus
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/BreadcrumbMenu.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/PageNavigator.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/spaces/page-navigator.jsp
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/BreadcrumbMenu.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/BreadcrumbMenu.java?rev=891567&amp;r1=891566&amp;r2=891567&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/BreadcrumbMenu.java?rev=891567&amp;r1=891566&amp;r2=891567&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/BreadcrumbMenu.java (original)
&lt;br&gt;+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/BreadcrumbMenu.java Thu Dec 17 07:11:44 2009
&lt;br&gt;@@ -82,15 +82,18 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (breadcrumbsMenu != null)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;MenuElement&amp;gt; breadcrumbsMenuElements = breadcrumbsMenu.getElements();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (MenuElement breadcrumbMenuElement : breadcrumbsMenuElements)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (breadcrumbsMenuElements != null)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (breadcrumbMenuElement instanceof MenuOption)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MenuOption breadcrumbMenuOption = (MenuOption)breadcrumbMenuElement;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String title = breadcrumbMenuOption.getTitle(preferredLocale);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String url = admin.getPortalURL(request, response, breadcrumbMenuOption.getUrl());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;breadcrumbs.add(new BreadcrumbMenuItem(title, url));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (MenuElement breadcrumbMenuElement : breadcrumbsMenuElements)
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (breadcrumbMenuElement instanceof MenuOption)
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MenuOption breadcrumbMenuOption = (MenuOption)breadcrumbMenuElement;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String title = breadcrumbMenuOption.getTitle(preferredLocale);
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String url = admin.getPortalURL(request, response, breadcrumbMenuOption.getUrl());
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;breadcrumbs.add(new BreadcrumbMenuItem(title, url));
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/PageNavigator.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/PageNavigator.java?rev=891567&amp;r1=891566&amp;r2=891567&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/PageNavigator.java?rev=891567&amp;r1=891566&amp;r2=891567&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/PageNavigator.java (original)
&lt;br&gt;+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/PageNavigator.java Thu Dec 17 07:11:44 2009
&lt;br&gt;@@ -26,11 +26,16 @@
&lt;br&gt;&amp;nbsp;import javax.portlet.PortletException;
&lt;br&gt;&amp;nbsp;import javax.portlet.RenderRequest;
&lt;br&gt;&amp;nbsp;import javax.portlet.RenderResponse;
&lt;br&gt;+import javax.servlet.http.HttpServletRequest;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.CommonPortletServices;
&lt;br&gt;+import org.apache.jetspeed.Jetspeed;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.administration.PortalAdministration;
&lt;br&gt;+import org.apache.jetspeed.container.url.BasePortalURL;
&lt;br&gt;+import org.apache.jetspeed.om.page.Link;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.Page;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.page.PageManager;
&lt;br&gt;+import org.apache.jetspeed.request.RequestContext;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.spaces.Space;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.spaces.Spaces;
&lt;br&gt;&amp;nbsp;import org.apache.portals.bridges.common.GenericServletPortlet;
&lt;br&gt;@@ -46,7 +51,8 @@
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private Spaces spacesService;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private PortalAdministration admin;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;protected PageManager pageManager; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected PageManager pageManager;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private BasePortalURL baseUrlAccess = null;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void init(PortletConfig config) throws PortletException
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;@@ -64,7 +70,16 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (null == pageManager)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new PortletException(&amp;quot;Failed to find the Page Manager on portlet initialization&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	baseUrlAccess = (BasePortalURL) Jetspeed.getComponentManager().getComponent(&amp;quot;BasePortalURL&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch (Exception e)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	baseUrlAccess = null; // optional
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;@SuppressWarnings(&amp;quot;unchecked&amp;quot;)
&lt;br&gt;@@ -76,6 +91,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;request.getPortletSession().removeAttribute(&amp;quot;spaces&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;request.getPortletSession().removeAttribute(&amp;quot;pages&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;request.getPortletSession().removeAttribute(&amp;quot;links&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;request.getPortletSession().removeAttribute(&amp;quot;space&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;Space&amp;gt; spaces = (List&amp;lt;Space&amp;gt;)request.getPortletSession().getAttribute(&amp;quot;spaces&amp;quot;);
&lt;br&gt;@@ -101,15 +117,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;request.getPortletSession().setAttribute(&amp;quot;space&amp;quot;, space); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;Page&amp;gt; pages = (List&amp;lt;Page&amp;gt;)request.getPortletSession().getAttribute(&amp;quot;pages&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (pages == null)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pages = spacesService.listPages(space);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;request.getPortletSession().setAttribute(&amp;quot;pages&amp;quot;, pages);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;request.setAttribute(&amp;quot;pages&amp;quot;, pages);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;request.setAttribute(&amp;quot;space&amp;quot;, space);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;request.setAttribute(&amp;quot;pageNavigator&amp;quot;, this);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;@@ -124,12 +134,6 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void processAction(ActionRequest actionRequest, ActionResponse actionResponse) throws PortletException,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;IOException
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String page = actionRequest.getParameter(&amp;quot;page&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (page != null)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String path = admin.getPortalURL(actionRequest, actionResponse, page);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;actionResponse.sendRedirect(path); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String addPage = actionRequest.getParameter(&amp;quot;addPage&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (addPage != null)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;@@ -147,6 +151,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageManager.updatePage(newPage);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;actionRequest.getPortletSession().removeAttribute(&amp;quot;pages&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;actionRequest.getPortletSession().removeAttribute(&amp;quot;links&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String redirect = admin.getPortalURL(actionRequest, actionResponse, path);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;actionResponse.sendRedirect(redirect); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -156,5 +161,33 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;} &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String getAbsoluteUrl(String relativePath, RenderResponse renderResponse, RequestContext rc)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// only rewrite a non-absolute url
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (relativePath != null &amp;&amp; relativePath.indexOf(&amp;quot;://&amp;quot;) == -1 &amp;&amp; relativePath.indexOf(&amp;quot;mailto:&amp;quot;) == -1) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;HttpServletRequest request = rc.getRequest();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StringBuffer path = new StringBuffer();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( !rc.getPortalURL().isRelativeOnly() )
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (this.baseUrlAccess == null)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;path.append(request.getScheme()).append(&amp;quot;://&amp;quot;).append(request.getServerName()).append(&amp;quot;:&amp;quot;).append(request.getServerPort());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;path.append(baseUrlAccess.getServerScheme()).append(&amp;quot;://&amp;quot;).append(baseUrlAccess.getServerName()).append(&amp;quot;:&amp;quot;).append(baseUrlAccess.getServerPort());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return renderResponse.encodeURL(path.append(request.getContextPath()).append(request.getServletPath()).append(relativePath).toString());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return relativePath;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;\ No newline at end of file
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/spaces/page-navigator.jsp
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/spaces/page-navigator.jsp?rev=891567&amp;r1=891566&amp;r2=891567&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/spaces/page-navigator.jsp?rev=891567&amp;r1=891566&amp;r2=891567&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/spaces/page-navigator.jsp (original)
&lt;br&gt;+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/spaces/page-navigator.jsp Thu Dec 17 07:11:44 2009
&lt;br&gt;@@ -16,26 +16,83 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;--%&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;%@page import=&amp;quot;java.util.List&amp;quot;%&amp;gt;
&lt;br&gt;+&amp;lt;%@page import=&amp;quot;java.util.Locale&amp;quot;%&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;%@page import=&amp;quot;java.text.DecimalFormat&amp;quot;%&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;%@page import=&amp;quot;java.text.NumberFormat&amp;quot;%&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;%@page import=&amp;quot;org.apache.jetspeed.spaces.Space&amp;quot;%&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;%@page import=&amp;quot;org.apache.jetspeed.om.page.Page&amp;quot;%&amp;gt;
&lt;br&gt;+&amp;lt;%@page import=&amp;quot;org.apache.jetspeed.om.page.Link&amp;quot;%&amp;gt;
&lt;br&gt;+&amp;lt;%@page import=&amp;quot;org.apache.jetspeed.portalsite.Menu&amp;quot;%&amp;gt;
&lt;br&gt;+&amp;lt;%@page import=&amp;quot;org.apache.jetspeed.portalsite.MenuElement&amp;quot;%&amp;gt;
&lt;br&gt;+&amp;lt;%@page import=&amp;quot;org.apache.jetspeed.portalsite.MenuOption&amp;quot;%&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;%@page import=&amp;quot;org.apache.jetspeed.CommonPortletServices&amp;quot;%&amp;gt;
&lt;br&gt;+&amp;lt;%@page import=&amp;quot;org.apache.jetspeed.request.RequestContext&amp;quot;%&amp;gt;
&lt;br&gt;+&amp;lt;%@page import=&amp;quot;org.apache.jetspeed.portalsite.PortalSiteRequestContext&amp;quot;%&amp;gt;
&lt;br&gt;+&amp;lt;%@page import=&amp;quot;org.apache.jetspeed.portlets.spaces.PageNavigator&amp;quot;%&amp;gt;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;&amp;lt;%@ page contentType=&amp;quot;text/html&amp;quot; %&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;%@ taglib uri=&amp;quot;&lt;a href=&quot;http://java.sun.com/jsp/jstl/fmt&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/jsp/jstl/fmt&lt;/a&gt;&amp;quot; prefix=&amp;quot;fmt&amp;quot; %&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;%@ taglib uri=&amp;quot;&lt;a href=&quot;http://java.sun.com/portlet&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://java.sun.com/portlet&lt;/a&gt;&amp;quot; prefix=&amp;quot;portlet&amp;quot;%&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;&amp;lt;portlet:defineObjects/&amp;gt;
&lt;br&gt;+&amp;lt;%
&lt;br&gt;+RequestContext rc = (RequestContext)request.getAttribute(RequestContext.REQUEST_PORTALENV);
&lt;br&gt;+PortalSiteRequestContext psrc = (PortalSiteRequestContext)rc.getAttribute(&amp;quot;org.apache.jetspeed.portalsite.PortalSiteRequestContext&amp;quot;);
&lt;br&gt;+Space space = (Space)renderRequest.getAttribute(&amp;quot;space&amp;quot;);
&lt;br&gt;+Locale locale = renderRequest.getLocale();
&lt;br&gt;+PageNavigator pageNavigator = (PageNavigator)renderRequest.getAttribute(&amp;quot;pageNavigator&amp;quot;);
&lt;br&gt;+%&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;table&amp;gt;
&lt;br&gt;+	&amp;lt;tr&amp;gt;&amp;lt;td class=&amp;quot;portlet-section-body&amp;quot;&amp;gt;&amp;lt;b&amp;gt;&amp;lt;%=space.getName() %&amp;gt; Space&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;
&lt;br&gt;+&amp;lt;%
&lt;br&gt;+Menu spaceMenu = psrc.getMenu(&amp;quot;pages&amp;quot;);
&lt;br&gt;+for (MenuElement element : (List&amp;lt;MenuElement&amp;gt;)spaceMenu.getElements())
&lt;br&gt;+{
&lt;br&gt;+	if (element.getElementType().equals(MenuElement.OPTION_ELEMENT_TYPE))
&lt;br&gt;+	{
&lt;br&gt;+		MenuOption option = (MenuOption)element;
&lt;br&gt;+		String url = pageNavigator.getAbsoluteUrl(option.getUrl(), renderResponse, rc);
&lt;br&gt;+	%&amp;gt; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;lt;tr&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;td class=&amp;quot;portlet-section-body&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;&amp;lt;%=url%&amp;gt;&amp;quot;&amp;gt;&amp;lt;%=element.getTitle(locale) %&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;lt;/tr&amp;gt;
&lt;br&gt;+	&amp;lt;%
&lt;br&gt;+		}
&lt;br&gt;+		else
&lt;br&gt;+		{
&lt;br&gt;+	%&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;lt;tr&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;td class=&amp;quot;portlet-section-body&amp;quot;&amp;gt;---&amp;lt;/td&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;lt;/tr&amp;gt;
&lt;br&gt;+	&amp;lt;%
&lt;br&gt;+	}
&lt;br&gt;+}
&lt;br&gt;+%&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;th class=&amp;quot;portlet-section-header&amp;quot; colspan=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;/th&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;%
&lt;br&gt;-List&amp;lt;Page&amp;gt; pages = (List&amp;lt;Page&amp;gt;)renderRequest.getAttribute(&amp;quot;pages&amp;quot;);
&lt;br&gt;-for (Page pg : pages)
&lt;br&gt;+Menu linksMenu = psrc.getMenu(&amp;quot;additional-links&amp;quot;);
&lt;br&gt;+for (MenuElement element : (List&amp;lt;MenuElement&amp;gt;)linksMenu.getElements())
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;+	if (element.getElementType().equals(MenuElement.OPTION_ELEMENT_TYPE))
&lt;br&gt;+	{
&lt;br&gt;+		MenuOption option = (MenuOption)element;
&lt;br&gt;+		String url = pageNavigator.getAbsoluteUrl(option.getUrl(), renderResponse, rc);	
&lt;br&gt;&amp;nbsp;%&amp;gt; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;tr&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;td class=&amp;quot;portlet-section-body&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;&amp;lt;portlet:actionURL&amp;gt;&amp;lt;portlet:param name='page' value='&amp;lt;%=pg.getPath()%&amp;gt;'/&amp;gt;&amp;lt;/portlet:actionURL&amp;gt;&amp;quot;&amp;gt;&amp;lt;%=pg.getTitle() %&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;td class=&amp;quot;portlet-section-body&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;&amp;lt;%=url%&amp;gt;&amp;quot;&amp;gt;&amp;lt;%=element.getTitle(locale) %&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;lt;/tr&amp;gt;
&lt;br&gt;+&amp;lt;%
&lt;br&gt;+	}
&lt;br&gt;+	else
&lt;br&gt;+	{
&lt;br&gt;+%&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;lt;tr&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;td class=&amp;quot;portlet-section-body&amp;quot;&amp;gt;---&amp;lt;/td&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/tr&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;%
&lt;br&gt;+	}
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&amp;nbsp;%&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26824113&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26824113&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Jetspeed---Dev-f199.html&quot; embed=&quot;fixTarget[199]&quot; target=&quot;_top&quot; &gt;Jetspeed - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r891567---in--portals-jetspeed-2-applications-j2-admin-trunk-src-main%3A-java-org-apache-jetspeed-portlets-spaces-BreadcrumbMenu.java-java-org-apache-jetspeed-portlets-spaces-PageNavigator.java-webapp-WEB-INF-view-spaces-page-navigator.jsp-tp26824113p26824113.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26821313</id>
	<title>svn commit: r891498 - /portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/ui/Jetui.java</title>
	<published>2009-12-16T16:49:59Z</published>
	<updated>2009-12-16T16:49:59Z</updated>
	<author>
		<name>taylor-8</name>
	</author>
	<content type="html">Author: taylor
&lt;br&gt;Date: Thu Dec 17 00:49:59 2009
&lt;br&gt;New Revision: 891498
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=891498&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=891498&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;&lt;a href=&quot;https://issues.apache.org/jira/browse/JS2-1084&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JS2-1084&lt;/a&gt;&lt;br&gt;respect container fragment size properties
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/ui/Jetui.java
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/ui/Jetui.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/ui/Jetui.java?rev=891498&amp;r1=891497&amp;r2=891498&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/ui/Jetui.java?rev=891498&amp;r1=891497&amp;r2=891498&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/ui/Jetui.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/ui/Jetui.java Thu Dec 17 00:49:59 2009
&lt;br&gt;@@ -81,25 +81,32 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// need to have a better algorithm to determine number of columns and fragment column sizes
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int numberOfColumns = 1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String layoutType = &amp;quot;OneColumn&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String fragmentColumnSizes = &amp;quot;100%&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String fragmentColumnSizes = rootFragment.getProperty(&amp;quot;sizes&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (jetspeedLayout.indexOf(&amp;quot;Two&amp;quot;) &amp;gt; -1)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;numberOfColumns = 2;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;layoutType = &amp;quot;TwoColumn&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fragmentColumnSizes = &amp;quot;50%,50%&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (fragmentColumnSizes == null)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	fragmentColumnSizes = &amp;quot;50%,50%&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (jetspeedLayout.indexOf(&amp;quot;Three&amp;quot;) &amp;gt; -1)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;numberOfColumns = 3;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;layoutType = &amp;quot;ThreeColumn&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fragmentColumnSizes = &amp;quot;33%,34%,33%&amp;quot;; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (fragmentColumnSizes == null) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	fragmentColumnSizes = &amp;quot;33%,34%,33%&amp;quot;; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (jetspeedLayout.indexOf(&amp;quot;Four&amp;quot;) &amp;gt; -1)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;numberOfColumns = 4;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;layoutType = &amp;quot;FourColumn&amp;quot;;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fragmentColumnSizes = &amp;quot;25%,25%,25%,25%&amp;quot;; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (fragmentColumnSizes == null) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	fragmentColumnSizes = &amp;quot;25%,25%,25%,25%&amp;quot;; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fragmentColumnSizes = &amp;quot;100%&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String [] fragmentColumnSizesArray = fragmentColumnSizes.split(&amp;quot;\\,&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ColumnLayout columnLayout = new ColumnLayout(numberOfColumns, layoutType, rootFragment.getFragments(), fragmentColumnSizesArray);
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26821313&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26821313&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Jetspeed---Dev-f199.html&quot; embed=&quot;fixTarget[199]&quot; target=&quot;_top&quot; &gt;Jetspeed - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r891498----portals-jetspeed-2-portal-trunk-components-jetspeed-portal-src-main-java-org-apache-jetspeed-ui-Jetui.java-tp26821313p26821313.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26820290</id>
	<title>Spring MVC portlets don't work correctly with pluto 2.0.0</title>
	<published>2009-12-16T15:17:14Z</published>
	<updated>2009-12-16T15:17:14Z</updated>
	<author>
		<name>Luis Montes-4</name>
	</author>
	<content type="html">They worked fine with 1.x&lt;br&gt;&lt;br&gt;In a porltet JSP file, calling request.getContextPath() gives the portal app &amp;quot;/pluto&amp;quot; and not the portlet app&amp;#39;s context path.&lt;br&gt;&lt;br&gt;&lt;br&gt;Any ideas how to fix this?&lt;br&gt;&lt;br&gt;Thanks,&lt;br&gt;
&lt;br&gt;Luis&lt;br&gt;&lt;br&gt;
&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Pluto---User-f200.html&quot; embed=&quot;fixTarget[200]&quot; target=&quot;_top&quot; &gt;Pluto - User&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Spring-MVC-portlets-don%27t-work-correctly-with-pluto-2.0.0-tp26820290p26820290.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26818045</id>
	<title>svn commit: r891420 [1/2] - in /portals/jetspeed-2/portal/trunk: applications/jetspeed/src/main/webapp/WEB-INF/pages/ components/jetspeed-locator/src/main/java/org/apache/jetspeed/profiler/impl/ components/jetspeed-page-layout/src/main/java/org/apache/...</title>
	<published>2009-12-16T12:38:23Z</published>
	<updated>2009-12-16T12:38:23Z</updated>
	<author>
		<name>rwatler</name>
	</author>
	<content type="html">Author: rwatler
&lt;br&gt;Date: Wed Dec 16 20:38:20 2009
&lt;br&gt;New Revision: 891420
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=891420&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=891420&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Jetspeed DynamicPage Support
&lt;br&gt;-----------------------------------------------------------
&lt;br&gt;- DynamicPage support added to PortalSite and PageLayout components
&lt;br&gt;- DynamicPage test cases added to PortalSite unit tests
&lt;br&gt;- minor implementation details addressed in exisiting low-level DynamicPage PageManager support, (requires DBPSML schema update)
&lt;br&gt;- added content type mapping component to the PortalSite infrastructure that implements content type and request path mapping via Spring configuration
&lt;br&gt;- removed old profiler content url mapping hooks and cleaned up portal request url processing to preserve request urls
&lt;br&gt;- added example content mapping page/portlet to demonstrate and test these features
&lt;br&gt;&lt;br&gt;To test Apache Portals Website &amp;quot;mounted&amp;quot; in portal using DynamicPages:
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://localhost:8080/jetspeed/portal/content/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:8080/jetspeed/portal/content/&lt;/a&gt;&lt;br&gt;&lt;br&gt;Significant files:
&lt;br&gt;&lt;br&gt;applications/jetspeed/src/main/webapp/WEB-INF/pages/default-content.dpsml &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - DynamicPage used to support Apache Portals Website
&lt;br&gt;components/jetspeed-portal/src/test/assembly/page-manager.xml &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - configuration of PortalSiteContentTypeMapper
&lt;br&gt;jetspeed-api/src/main/java/org/apache/jetspeed/portalsite/PortalSiteContentTypeMapper.java &amp;nbsp;- portal URL and content Type Mapping in PortalSite
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Added:
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/default-content.dpsml
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/AbstractPatternMapping.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/ContentTypeMapping.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/PortalSiteContentTypeMapperImpl.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/RequestPathMapping.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/contentfolder/
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/contentfolder/docpage.dpsml
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/contentfolder/pub/
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/contentfolder/pub/docpage.dpsml
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/contentpage.dpsml
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/docpage.dpsml
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portalsite/PortalSiteContentTypeMapper.java
&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-locator/src/main/java/org/apache/jetspeed/profiler/impl/JetspeedProfileLocator.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/src/main/java/org/apache/jetspeed/layout/impl/PageLayoutComponentImpl.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/src/main/java/org/apache/jetspeed/om/page/impl/ContentFragmentImpl.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/src/main/java/org/apache/jetspeed/om/page/impl/ContentPageImpl.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/DynamicPageImpl.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/psml/DynamicPageImpl.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/AbstractPageManager.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/resources/JETSPEED-INF/castor/page-mapping.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/resources/JETSPEED-INF/ojb/page-manager-repository.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestCastorXmlPageManager.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestDatabasePageManager.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/test/testdata/pages/clonetest.dpsml
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/test/testdata/pages/test001.dpsml
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/MenuImpl.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/MenuOptionImpl.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/PortalSiteImpl.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/PortalSiteRequestContextImpl.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/PortalSiteSessionContextImpl.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/view/SiteView.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/java/JETSPEED-INF/spring/test-spring.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/java/org/apache/jetspeed/portalsite/TestPortalSite.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/url/impl/AbstractPortalURL.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/url/impl/PathInfoEncodingPortalURL.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/UpdatePageAction.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/profiler/impl/ProfilerValveImpl.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/request/JetspeedRequestContext.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/assembly/page-manager.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-profiler/src/main/java/org/apache/jetspeed/profiler/impl/JetspeedProfilerImpl.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-profiler/src/main/java/org/apache/jetspeed/profiler/rules/impl/PathSessionResolver.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/layout/PageLayoutComponent.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/ContentPage.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/DynamicPage.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portalsite/PortalSite.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portalsite/PortalSiteRequestContext.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portalsite/PortalSiteSessionContext.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/profiler/ProfileLocator.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/ddl-schema/phase2-schema.xml
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/page-manager.xml
&lt;br&gt;&lt;br&gt;Added: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/default-content.dpsml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/default-content.dpsml?rev=891420&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/default-content.dpsml?rev=891420&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/default-content.dpsml (added)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/default-content.dpsml Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -0,0 +1,47 @@
&lt;br&gt;+&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&lt;br&gt;+&amp;lt;!--
&lt;br&gt;+Licensed to the Apache Software Foundation (ASF) under one or more
&lt;br&gt;+contributor license agreements. &amp;nbsp;See the NOTICE file distributed with
&lt;br&gt;+this work for additional information regarding copyright ownership.
&lt;br&gt;+The ASF licenses this file to You under the Apache License, Version 2.0
&lt;br&gt;+(the &amp;quot;License&amp;quot;); you may not use this file except in compliance with
&lt;br&gt;+the License. &amp;nbsp;You may obtain a copy of the License at
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+
&lt;br&gt;+Unless required by applicable law or agreed to in writing, software
&lt;br&gt;+distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&lt;br&gt;+See the License for the specific language governing permissions and
&lt;br&gt;+limitations under the License.
&lt;br&gt;+--&amp;gt;
&lt;br&gt;+&amp;lt;dynamic-page id=&amp;quot;default-content&amp;quot; content-type=&amp;quot;*&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xmlns=&amp;quot;&lt;a href=&quot;http://portals.apache.org/jetspeed&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://portals.apache.org/jetspeed&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xmlns:xsi=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xsi:schemaLocation=&amp;quot;&lt;a href=&quot;http://portals.apache.org/jetspeed&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://portals.apache.org/jetspeed&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://portals.apache.org/jetspeed-2/2.1/schemas/psml.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://portals.apache.org/jetspeed-2/2.1/schemas/psml.xsd&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+ 
&lt;br&gt;+ &amp;nbsp;&amp;lt;title&amp;gt;Jetspeed 2 Portals Content&amp;lt;/title&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;&amp;lt;fragment id=&amp;quot;dcdp-1-layout&amp;quot; type=&amp;quot;layout&amp;quot; name=&amp;quot;jetspeed-layouts::VelocityTwoColumns&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;sizes&amp;quot; value=&amp;quot;80%,20%&amp;quot; /&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;fragment id=&amp;quot;dcdp-2-dynamic-content&amp;quot; type=&amp;quot;portlet&amp;quot; name=&amp;quot;j2-admin::DynamicWebContentPortlet&amp;quot; decorator=&amp;quot;gray-gradient-noborder&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;row&amp;quot; value=&amp;quot;0&amp;quot; /&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;column&amp;quot; value=&amp;quot;0&amp;quot; /&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;preference name=&amp;quot;SRC&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;value&amp;gt;&lt;a href=&quot;http://portals.apache.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://portals.apache.org/&lt;/a&gt;&amp;lt;/value&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/preference&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;preference name=&amp;quot;PORTALPATH&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;value&amp;gt;/content/&amp;lt;/value&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/preference&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/fragment&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;fragment-reference id=&amp;quot;dcdp-3-wp-reference&amp;quot; refid=&amp;quot;wp-definition&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;row&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;property name=&amp;quot;column&amp;quot; value=&amp;quot;1&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/fragment-reference&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/fragment&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;&amp;lt;security-constraints&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;security-constraints-ref&amp;gt;public-view&amp;lt;/security-constraints-ref&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/security-constraints&amp;gt;
&lt;br&gt;+
&lt;br&gt;+&amp;lt;/dynamic-page&amp;gt;
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-locator/src/main/java/org/apache/jetspeed/profiler/impl/JetspeedProfileLocator.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-locator/src/main/java/org/apache/jetspeed/profiler/impl/JetspeedProfileLocator.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-locator/src/main/java/org/apache/jetspeed/profiler/impl/JetspeedProfileLocator.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-locator/src/main/java/org/apache/jetspeed/profiler/impl/JetspeedProfileLocator.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-locator/src/main/java/org/apache/jetspeed/profiler/impl/JetspeedProfileLocator.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -37,6 +37,7 @@
&lt;br&gt;&amp;nbsp;{ &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private LinkedList elements = new LinkedList();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private String requestPath;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String requestServerName;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public List getElements()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;@@ -45,13 +46,27 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void init(Profiler profiler, String requestPath)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;init(profiler, requestPath, null);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void init(Profiler profiler, String requestPath, String requestServerName)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (requestPath != null)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (requestPath.indexOf(&amp;quot;/&amp;quot;) != -1)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.requestPath = requestPath;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.requestPath = &amp;quot;/&amp;quot; + requestPath;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.requestPath = &amp;quot;/&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.requestServerName = requestServerName;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public Iterator iterator()
&lt;br&gt;@@ -176,4 +191,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return requestPath;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String getRequestServerName()
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return requestServerName;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/src/main/java/org/apache/jetspeed/layout/impl/PageLayoutComponentImpl.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/src/main/java/org/apache/jetspeed/layout/impl/PageLayoutComponentImpl.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/src/main/java/org/apache/jetspeed/layout/impl/PageLayoutComponentImpl.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/src/main/java/org/apache/jetspeed/layout/impl/PageLayoutComponentImpl.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/src/main/java/org/apache/jetspeed/layout/impl/PageLayoutComponentImpl.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -28,15 +28,20 @@
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.JetspeedActions;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.layout.PageLayoutComponent;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.page.PageManager;
&lt;br&gt;+import org.apache.jetspeed.page.PageNotFoundException;
&lt;br&gt;+import org.apache.jetspeed.page.PageNotRemovedException;
&lt;br&gt;+import org.apache.jetspeed.page.PageNotUpdatedException;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.folder.Folder;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.BaseFragmentElement;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.BaseFragmentsElement;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.BasePageElement;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.ContentFragment;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.ContentPage;
&lt;br&gt;+import org.apache.jetspeed.om.page.DynamicPage;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.Fragment;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.FragmentDefinition;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.FragmentReference;
&lt;br&gt;+import org.apache.jetspeed.om.page.BaseConcretePageElement;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.Page;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.PageFragment;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.PageTemplate;
&lt;br&gt;@@ -46,6 +51,7 @@
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.impl.ContentPageImpl;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.portlet.LocalizedField;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.preference.FragmentPreference;
&lt;br&gt;+import org.apache.jetspeed.page.document.NodeException;
&lt;br&gt;&amp;nbsp;import org.apache.pluto.container.PortletPreference;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import org.slf4j.Logger;
&lt;br&gt;@@ -96,7 +102,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// retrieve current page and root fragment from page manager
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page page = pageManager.getPage(contentPageImpl.getPage().getPath());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement page = getPage(contentPageImpl.getPage().getPath());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseFragmentElement rootFragment = page.getRootFragment();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!(rootFragment instanceof Fragment))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;@@ -126,7 +132,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fragment.getFragments().add(newFragment);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// update page in page manager
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageManager.updatePage(page);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;updatePage(page);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// update content page context
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ContentFragmentImpl contentFragmentImpl = (ContentFragmentImpl)contentFragment;
&lt;br&gt;@@ -178,14 +184,14 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(&amp;quot;Locked content fragment is not mutable&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean contentFragmentDefinitionIsPage = ((contentFragmentImpl.getDefinition() instanceof Page) &amp;&amp; contentFragmentImpl.getDefinition().getPath().equals(contentFragmentImpl.getPage().getPath()));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean contentFragmentDefinitionIsPage = ((contentFragmentImpl.getDefinition() instanceof BaseConcretePageElement) &amp;&amp; contentFragmentImpl.getDefinition().getPath().equals(contentFragmentImpl.getPage().getPath()));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!contentFragmentDefinitionIsPage)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(&amp;quot;Only page fragments can be modified&amp;quot;); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// retrieve current page and fragment from page manager
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page page = pageManager.getPage(contentFragmentImpl.getPage().getPath());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement page = getPage(contentFragmentImpl.getPage().getPath());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseFragmentElement parentFragment = page.getFragmentById(contentFragmentImpl.getFragment().getId());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!(parentFragment instanceof Fragment))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;@@ -215,7 +221,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fragment.getFragments().add(newFragment);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// update page in page manager
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageManager.updatePage(page);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;updatePage(page);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// update content context
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ContentFragmentImpl newContentFragmentImpl = newContentFragment(contentFragmentImpl.getId(), page, null, page, newFragment, false);
&lt;br&gt;@@ -251,7 +257,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// retrieve current page and root fragment from page manager
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page page = pageManager.getPage(contentPage.getPage().getPath());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement page = getPage(contentPage.getPage().getPath());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseFragmentElement rootFragment = page.getRootFragment();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!(rootFragment instanceof Fragment))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;@@ -273,7 +279,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fragment.getFragments().add(newFragment);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// update page in page manager
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageManager.updatePage(page);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;updatePage(page);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// update content page context
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ContentFragmentImpl newContentFragmentImpl = newContentFragment(pageRootContentFragmentImpl.getId(), page, null, page, newFragment, false);
&lt;br&gt;@@ -296,7 +302,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// retrieve current page and parent folders from page manager
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ContentPageImpl contentPageImpl = (ContentPageImpl)contentPage;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page page = pageManager.getPage(contentPageImpl.getPage().getPath());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement page = getPage(contentPageImpl.getPage().getPath());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Folder pageFolder = (Folder)page.getParent();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Folder documentOrderingFolder = (Folder)pageFolder.getParent();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (documentOrderingFolder != null)
&lt;br&gt;@@ -328,7 +334,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// retrieve current page and parent folder from page manager
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ContentPageImpl contentPageImpl = (ContentPageImpl)contentPage;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page page = pageManager.getPage(contentPageImpl.getPage().getPath());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement page = getPage(contentPageImpl.getPage().getPath());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Folder documentOrderingFolder = (Folder)page.getParent();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// check for edit permission
&lt;br&gt;@@ -357,7 +363,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// retrieve current page and parent folders from page manager
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ContentPageImpl contentPageImpl = (ContentPageImpl)contentPage;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page page = pageManager.getPage(contentPageImpl.getPage().getPath());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement page = getPage(contentPageImpl.getPage().getPath());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Folder pageFolder = (Folder)page.getParent();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Folder documentOrderingFolder = (Folder)pageFolder.getParent();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (documentOrderingFolder != null)
&lt;br&gt;@@ -389,7 +395,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// retrieve current page and parent folder from page manager
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ContentPageImpl contentPageImpl = (ContentPageImpl)contentPage;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page page = pageManager.getPage(contentPageImpl.getPage().getPath());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement page = getPage(contentPageImpl.getPage().getPath());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Folder documentOrderingFolder = (Folder)page.getParent();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// check for edit permission
&lt;br&gt;@@ -439,14 +445,14 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(&amp;quot;Cannot use move fragment operation between pages&amp;quot;); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean contentFragmentDefinitionIsPage = ((contentFragmentImpl.getDefinition() instanceof Page) &amp;&amp; contentFragmentImpl.getDefinition().getPath().equals(contentPageImpl.getPath()));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean contentFragmentDefinitionIsPage = ((contentFragmentImpl.getDefinition() instanceof BaseConcretePageElement) &amp;&amp; contentFragmentImpl.getDefinition().getPath().equals(contentPageImpl.getPath()));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!contentFragmentDefinitionIsPage &amp;&amp; (contentFragmentImpl.getReference() == null))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(&amp;quot;Fragment reference and page not consistent or mutable&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// retrieve current page and fragments from page manager
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page page = pageManager.getPage(contentPageImpl.getPage().getPath());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement page = getPage(contentPageImpl.getPage().getPath());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseFragmentElement fromFragmentElement = page.getFragmentById(fromContentFragmentImpl.getFragment().getId());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!(fromFragmentElement instanceof Fragment))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;@@ -472,7 +478,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// move page fragment and update page in page manager
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fragment = fromFragment.removeFragmentById(fragment.getId());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;toFragment.getFragments().add(fragment);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageManager.updatePage(page);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;updatePage(page);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// update content context
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fromContentFragmentImpl.removeFragmentById(fragmentId);
&lt;br&gt;@@ -489,7 +495,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/* (non-Javadoc)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @see org.apache.jetspeed.layout.PageLayoutComponent#newContentPage(org.apache.jetspeed.om.page.Page, org.apache.jetspeed.om.page.PageTemplate, java.util.Map)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public ContentPage newContentPage(Page page, PageTemplate pageTemplate, Map fragmentDefinitions)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public ContentPage newContentPage(BaseConcretePageElement page, PageTemplate pageTemplate, Map fragmentDefinitions)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// generate content page
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String contentPageId = page.getId();
&lt;br&gt;@@ -573,7 +579,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// retrieve current page and parent folder from page manager
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ContentPageImpl contentPageImpl = (ContentPageImpl)contentPage;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page page = pageManager.getPage(contentPageImpl.getPage().getPath());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement page = getPage(contentPageImpl.getPage().getPath());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Folder folder = (Folder)page.getParent();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// check for edit permission
&lt;br&gt;@@ -681,7 +687,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// retrieve current page and parent folder from page manager
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ContentPageImpl contentPageImpl = (ContentPageImpl)contentPage;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page page = pageManager.getPage(contentPageImpl.getPage().getPath());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement page = getPage(contentPageImpl.getPage().getPath());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Folder folder = (Folder)page.getParent();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// check for edit permission
&lt;br&gt;@@ -751,7 +757,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// retrieve current page and document ordering folder from page manager
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ContentPageImpl contentPageImpl = (ContentPageImpl)contentPage;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page page = pageManager.getPage(contentPageImpl.getPage().getPath());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement page = getPage(contentPageImpl.getPage().getPath());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String documentName = page.getName();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Folder documentOrderingFolder = (Folder)page.getParent();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -759,7 +765,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;page.checkAccess(JetspeedActions.EDIT);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// remove in page manager
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageManager.removePage(page);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;removePage(page);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// check for ordering folder edit permission
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;documentOrderingFolder.checkAccess(JetspeedActions.EDIT);
&lt;br&gt;@@ -788,7 +794,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// retrieve current page and parent folder from page manager
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ContentPageImpl contentPageImpl = (ContentPageImpl)contentPage;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page page = pageManager.getPage(contentPageImpl.getPage().getPath());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement page = getPage(contentPageImpl.getPage().getPath());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Folder folder = (Folder)page.getParent();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String documentName = folder.getName();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Folder documentOrderingFolder = (Folder)folder.getParent();
&lt;br&gt;@@ -837,14 +843,14 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(&amp;quot;Parent content fragment and page not consistent or locked&amp;quot;); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean contentFragmentDefinitionIsPage = ((contentFragmentImpl.getDefinition() instanceof Page) &amp;&amp; contentFragmentImpl.getDefinition().getPath().equals(contentPageImpl.getPath()));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean contentFragmentDefinitionIsPage = ((contentFragmentImpl.getDefinition() instanceof BaseConcretePageElement) &amp;&amp; contentFragmentImpl.getDefinition().getPath().equals(contentPageImpl.getPath()));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!contentFragmentDefinitionIsPage &amp;&amp; (contentFragmentImpl.getReference() == null))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(&amp;quot;Fragment reference and page not consistent or mutable&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// retrieve current page and fragment from page manager
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page page = pageManager.getPage(contentPageImpl.getPage().getPath());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement page = getPage(contentPageImpl.getPage().getPath());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String pageFragmentId = (contentFragmentDefinitionIsPage ? contentFragmentImpl.getFragment().getId() : contentFragmentImpl.getReference().getId());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseFragmentElement fragment = page.getFragmentById(pageFragmentId);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (fragment == null)
&lt;br&gt;@@ -859,7 +865,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean update = (page.removeFragmentById(pageFragmentId) != null);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (update)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageManager.updatePage(page);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;updatePage(page);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// update content context
&lt;br&gt;@@ -881,14 +887,14 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// validate content fragment
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ContentFragmentImpl contentFragmentImpl = (ContentFragmentImpl)contentFragment;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean contentFragmentDefinitionIsPage = ((contentFragmentImpl.getDefinition() instanceof Page) &amp;&amp; contentFragmentImpl.getDefinition().getPath().equals(contentFragmentImpl.getPage().getPath()));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean contentFragmentDefinitionIsPage = ((contentFragmentImpl.getDefinition() instanceof BaseConcretePageElement) &amp;&amp; contentFragmentImpl.getDefinition().getPath().equals(contentFragmentImpl.getPage().getPath()));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!contentFragmentDefinitionIsPage &amp;&amp; (contentFragmentImpl.getReference() == null))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(&amp;quot;Only page fragments and fragment references are mutable&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// retrieve current fragment and page from page manager
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page page = pageManager.getPage(contentFragmentImpl.getPage().getPath());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement page = getPage(contentFragmentImpl.getPage().getPath());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String pageFragmentId = (contentFragmentDefinitionIsPage ? contentFragmentImpl.getFragment().getId() : contentFragmentImpl.getReference().getId());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseFragmentElement fragment = page.getFragmentById(pageFragmentId);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (fragment == null)
&lt;br&gt;@@ -910,7 +916,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (update)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageManager.updatePage(page);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;updatePage(page);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// update content context
&lt;br&gt;@@ -938,7 +944,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// retrieve current page from page manager
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ContentPageImpl contentPageImpl = (ContentPageImpl)contentPage;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page page = pageManager.getPage(contentPageImpl.getPage().getPath());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement page = getPage(contentPageImpl.getPage().getPath());
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// check for edit permission
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;page.checkAccess(JetspeedActions.EDIT); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;@@ -954,7 +960,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (update)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageManager.updatePage(page);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;updatePage(page);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// update content context
&lt;br&gt;@@ -979,7 +985,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// retrieve current page and parent folder from page manager
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ContentPageImpl contentPageImpl = (ContentPageImpl)contentPage;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page page = pageManager.getPage(contentPageImpl.getPage().getPath());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement page = getPage(contentPageImpl.getPage().getPath());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Folder folder = (Folder)page.getParent();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// check for edit permission
&lt;br&gt;@@ -1034,14 +1040,14 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(&amp;quot;Locked content fragment is not mutable&amp;quot;); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean contentFragmentDefinitionIsPage = ((contentFragmentImpl.getDefinition() instanceof Page) &amp;&amp; contentFragmentImpl.getDefinition().getPath().equals(contentFragmentImpl.getPage().getPath()));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean contentFragmentDefinitionIsPage = ((contentFragmentImpl.getDefinition() instanceof BaseConcretePageElement) &amp;&amp; contentFragmentImpl.getDefinition().getPath().equals(contentFragmentImpl.getPage().getPath()));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!contentFragmentDefinitionIsPage)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(&amp;quot;Only page fragments can be modified&amp;quot;); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// retrieve current fragment and page from page manager
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page page = pageManager.getPage(contentFragmentImpl.getPage().getPath());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement page = getPage(contentFragmentImpl.getPage().getPath());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseFragmentElement foundFragment = page.getFragmentById(contentFragmentImpl.getFragment().getId());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!(foundFragment instanceof Fragment))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;@@ -1061,7 +1067,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (update)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageManager.updatePage(page);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;updatePage(page);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// update content context
&lt;br&gt;@@ -1083,14 +1089,14 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// validate content fragment
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ContentFragmentImpl contentFragmentImpl = (ContentFragmentImpl)contentFragment;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean contentFragmentDefinitionIsPage = ((contentFragmentImpl.getDefinition() instanceof Page) &amp;&amp; contentFragmentImpl.getDefinition().getPath().equals(contentFragmentImpl.getPage().getPath()));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean contentFragmentDefinitionIsPage = ((contentFragmentImpl.getDefinition() instanceof BaseConcretePageElement) &amp;&amp; contentFragmentImpl.getDefinition().getPath().equals(contentFragmentImpl.getPage().getPath()));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!contentFragmentDefinitionIsPage &amp;&amp; (contentFragmentImpl.getReference() == null))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(&amp;quot;Only page fragments and fragment references are mutable&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// retrieve current fragment and page from page manager
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page page = pageManager.getPage(contentFragmentImpl.getPage().getPath());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement page = getPage(contentFragmentImpl.getPage().getPath());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String pageFragmentId = (contentFragmentDefinitionIsPage ? contentFragmentImpl.getFragment().getId() : contentFragmentImpl.getReference().getId());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseFragmentElement fragment = page.getFragmentById(pageFragmentId);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (fragment == null)
&lt;br&gt;@@ -1145,7 +1151,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (update)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageManager.updatePage(page);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;updatePage(page);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// update content context
&lt;br&gt;@@ -1186,14 +1192,14 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// validate content fragment
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ContentFragmentImpl contentFragmentImpl = (ContentFragmentImpl)contentFragment;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean contentFragmentDefinitionIsPage = ((contentFragmentImpl.getDefinition() instanceof Page) &amp;&amp; contentFragmentImpl.getDefinition().getPath().equals(contentFragmentImpl.getPage().getPath()));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean contentFragmentDefinitionIsPage = ((contentFragmentImpl.getDefinition() instanceof BaseConcretePageElement) &amp;&amp; contentFragmentImpl.getDefinition().getPath().equals(contentFragmentImpl.getPage().getPath()));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!contentFragmentDefinitionIsPage &amp;&amp; (contentFragmentImpl.getReference() == null))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(&amp;quot;Only page fragments and fragment references are mutable&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// retrieve current fragment and page from page manager
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page page = pageManager.getPage(contentFragmentImpl.getPage().getPath());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement page = getPage(contentFragmentImpl.getPage().getPath());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String pageFragmentId = (contentFragmentDefinitionIsPage ? contentFragmentImpl.getFragment().getId() : contentFragmentImpl.getReference().getId());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseFragmentElement fragment = page.getFragmentById(pageFragmentId);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (fragment == null)
&lt;br&gt;@@ -1242,7 +1248,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fragment.getPreferences().add(preference);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageManager.updatePage(page);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;updatePage(page);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// update content context
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;contentFragmentImpl.setPreferences(preferences);
&lt;br&gt;@@ -1263,14 +1269,14 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// validate content fragment
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ContentFragmentImpl contentFragmentImpl = (ContentFragmentImpl)contentFragment;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean contentFragmentDefinitionIsPage = ((contentFragmentImpl.getDefinition() instanceof Page) &amp;&amp; contentFragmentImpl.getDefinition().getPath().equals(contentFragmentImpl.getPage().getPath()));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean contentFragmentDefinitionIsPage = ((contentFragmentImpl.getDefinition() instanceof BaseConcretePageElement) &amp;&amp; contentFragmentImpl.getDefinition().getPath().equals(contentFragmentImpl.getPage().getPath()));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!contentFragmentDefinitionIsPage &amp;&amp; (contentFragmentImpl.getReference() == null))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(&amp;quot;Only page fragments and fragment references are mutable&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// retrieve current fragment and page from page manager
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page page = pageManager.getPage(contentFragmentImpl.getPage().getPath());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement page = getPage(contentFragmentImpl.getPage().getPath());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String pageFragmentId = (contentFragmentDefinitionIsPage ? contentFragmentImpl.getFragment().getId() : contentFragmentImpl.getReference().getId());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseFragmentElement fragment = page.getFragmentById(pageFragmentId);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (fragment == null)
&lt;br&gt;@@ -1301,7 +1307,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (update)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageManager.updatePage(page);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;updatePage(page);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// update content context
&lt;br&gt;@@ -1330,14 +1336,14 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// validate content fragment
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ContentFragmentImpl contentFragmentImpl = (ContentFragmentImpl)contentFragment;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean contentFragmentDefinitionIsPage = ((contentFragmentImpl.getDefinition() instanceof Page) &amp;&amp; contentFragmentImpl.getDefinition().getPath().equals(contentFragmentImpl.getPage().getPath()));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean contentFragmentDefinitionIsPage = ((contentFragmentImpl.getDefinition() instanceof BaseConcretePageElement) &amp;&amp; contentFragmentImpl.getDefinition().getPath().equals(contentFragmentImpl.getPage().getPath()));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!contentFragmentDefinitionIsPage &amp;&amp; (contentFragmentImpl.getReference() == null))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new IllegalArgumentException(&amp;quot;Only page fragments and fragment references are mutable&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// retrieve current fragment and page from page manager
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page page = pageManager.getPage(contentFragmentImpl.getPage().getPath());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement page = getPage(contentFragmentImpl.getPage().getPath());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String pageFragmentId = (contentFragmentDefinitionIsPage ? contentFragmentImpl.getFragment().getId() : contentFragmentImpl.getReference().getId());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseFragmentElement fragment = page.getFragmentById(pageFragmentId);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (fragment == null)
&lt;br&gt;@@ -1368,7 +1374,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (update)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageManager.updatePage(page);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;updatePage(page);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// update content context
&lt;br&gt;@@ -1397,7 +1403,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// retrieve current page from page manager
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ContentPageImpl contentPageImpl = (ContentPageImpl)contentPage;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page page = pageManager.getPage(contentPageImpl.getPage().getPath());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement page = getPage(contentPageImpl.getPage().getPath());
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// check for edit permission
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;page.checkAccess(JetspeedActions.EDIT); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;@@ -1422,7 +1428,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (update)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageManager.updatePage(page);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;updatePage(page);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// update content context
&lt;br&gt;@@ -1568,7 +1574,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param locked locked fragment flag
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return content fragment hierarchy or null if undefined
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private ContentFragmentImpl newContentFragment(String parentId, Page page, Map fragmentDefinitions, BaseFragmentsElement definition, BaseFragmentElement fragment, boolean locked)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private ContentFragmentImpl newContentFragment(String parentId, BaseConcretePageElement page, Map fragmentDefinitions, BaseFragmentsElement definition, BaseFragmentElement fragment, boolean locked)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// generate content fragment hierarchy for specific fragment;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// merges fragment hierarchy and attributes from fragments,
&lt;br&gt;@@ -1645,7 +1651,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param fragmentFragment referenced root PSML fragment from fragment definition
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return content fragment hierarchy or null if undefined
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private ContentFragmentImpl newContentFragment(String parentId, Page page, Map fragmentDefinitions, BaseFragmentsElement definition, FragmentReference fragmentReference, Fragment [] fragmentFragment)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private ContentFragmentImpl newContentFragment(String parentId, BaseConcretePageElement page, Map fragmentDefinitions, BaseFragmentsElement definition, FragmentReference fragmentReference, Fragment [] fragmentFragment)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// generate content fragment hierarchy for reference fragment from
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// fragment definition root fragment if located
&lt;br&gt;@@ -1672,7 +1678,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param locked locked fragment flag
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return content fragment hierarchy or null if undefined
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private ContentFragmentImpl newContentFragment(String id, Page page, Map fragmentDefinitions, BaseFragmentsElement definition, Fragment fragment, FragmentReference reference, boolean locked)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private ContentFragmentImpl newContentFragment(String id, BaseConcretePageElement page, Map fragmentDefinitions, BaseFragmentsElement definition, Fragment fragment, FragmentReference reference, boolean locked)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// generate content fragment hierarchy for fragment
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ContentFragmentImpl contentFragmentImpl = new ContentFragmentImpl(this, id, page, definition, fragment, reference, locked);
&lt;br&gt;@@ -1846,4 +1852,69 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Get page or dynamic page from page manager.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param pagePath path to page
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return page or dynamic page
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws PageNotFoundException
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws NodeException
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private BaseConcretePageElement getPage(String pagePath) throws PageNotFoundException, NodeException
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (pagePath.endsWith(Page.DOCUMENT_TYPE))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return pageManager.getPage(pagePath);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (pagePath.endsWith(DynamicPage.DOCUMENT_TYPE))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return pageManager.getDynamicPage(pagePath); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new PageNotFoundException(&amp;quot;Unable to classify page path by type: &amp;quot;+pagePath);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Update page or dynamic page using page manager.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param page page or dynamic page to update
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws NodeException
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws PageNotUpdatedException
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private void updatePage(BaseConcretePageElement page) throws NodeException, PageNotUpdatedException
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (page instanceof Page)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageManager.updatePage((Page)page);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (page instanceof DynamicPage)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageManager.updateDynamicPage((DynamicPage)page);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new PageNotUpdatedException(&amp;quot;Unable to classify page by type: &amp;quot;+((page != null) ? page.getClass().getName() : &amp;quot;null&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Remove page or dynamic page using page manager.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param page page or dynamic page to update
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws NodeException
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws PageNotRemovedException
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private void removePage(BaseConcretePageElement page) throws NodeException, PageNotRemovedException
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (page instanceof Page)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageManager.removePage((Page)page);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (page instanceof DynamicPage)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageManager.removeDynamicPage((DynamicPage)page);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new PageNotRemovedException(&amp;quot;Unable to classify page by type: &amp;quot;+((page != null) ? page.getClass().getName() : &amp;quot;null&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/src/main/java/org/apache/jetspeed/om/page/impl/ContentFragmentImpl.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/src/main/java/org/apache/jetspeed/om/page/impl/ContentFragmentImpl.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/src/main/java/org/apache/jetspeed/om/page/impl/ContentFragmentImpl.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/src/main/java/org/apache/jetspeed/om/page/impl/ContentFragmentImpl.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/src/main/java/org/apache/jetspeed/om/page/impl/ContentFragmentImpl.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -27,11 +27,11 @@
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.decoration.Decoration;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.layout.PageLayoutComponent;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.layout.impl.PageLayoutComponentUtils;
&lt;br&gt;+import org.apache.jetspeed.om.page.BaseConcretePageElement;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.BaseFragmentsElement;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.ContentFragment;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.Fragment;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.FragmentReference;
&lt;br&gt;-import org.apache.jetspeed.om.page.Page;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.preference.FragmentPreference;
&lt;br&gt;&amp;nbsp;import org.apache.pluto.container.PortletPreference;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -50,7 +50,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private PageLayoutComponent pageLayoutComponent;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private String id;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private Page page;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private BaseConcretePageElement page;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private BaseFragmentsElement definition;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private Fragment fragment;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private FragmentReference reference;
&lt;br&gt;@@ -116,7 +116,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param reference PSML page fragment reference
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param locked locked flag
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public ContentFragmentImpl(PageLayoutComponent pageLayoutComponent, String id, Page page, BaseFragmentsElement definition, Fragment fragment, FragmentReference reference, boolean locked)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public ContentFragmentImpl(PageLayoutComponent pageLayoutComponent, String id, BaseConcretePageElement page, BaseFragmentsElement definition, Fragment fragment, FragmentReference reference, boolean locked)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.pageLayoutComponent = pageLayoutComponent;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.id = id;
&lt;br&gt;@@ -838,7 +838,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return the PSML page
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public Page getPage()
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public BaseConcretePageElement getPage()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return page;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -884,7 +884,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param reference PSML page fragment reference
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param locked locked flag
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void initialize(PageLayoutComponent pageLayoutComponent, Page page, BaseFragmentsElement definition, Fragment fragment, FragmentReference reference, boolean locked)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void initialize(PageLayoutComponent pageLayoutComponent, BaseConcretePageElement page, BaseFragmentsElement definition, Fragment fragment, FragmentReference reference, boolean locked)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.pageLayoutComponent = pageLayoutComponent;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.page = page;
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/src/main/java/org/apache/jetspeed/om/page/impl/ContentPageImpl.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/src/main/java/org/apache/jetspeed/om/page/impl/ContentPageImpl.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/src/main/java/org/apache/jetspeed/om/page/impl/ContentPageImpl.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/src/main/java/org/apache/jetspeed/om/page/impl/ContentPageImpl.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-page-layout/src/main/java/org/apache/jetspeed/om/page/impl/ContentPageImpl.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -23,9 +23,9 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.layout.PageLayoutComponent;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.layout.impl.PageLayoutComponentUtils;
&lt;br&gt;+import org.apache.jetspeed.om.page.BaseConcretePageElement;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.ContentFragment;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.ContentPage;
&lt;br&gt;-import org.apache.jetspeed.om.page.Page;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.PageTemplate;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.portlet.GenericMetadata;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -39,7 +39,7 @@
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private PageLayoutComponent pageLayoutComponent;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private String id;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private Page page;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private BaseConcretePageElement page;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private PageTemplate pageTemplate;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private Map fragmentDefinitions;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -83,7 +83,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param pageTemplate PSML page template
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param fragmentDefinitions PSML fragment definitions
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public ContentPageImpl(PageLayoutComponent pageLayoutComponent, String id, Page page, PageTemplate pageTemplate, Map fragmentDefinitions)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public ContentPageImpl(PageLayoutComponent pageLayoutComponent, String id, BaseConcretePageElement page, PageTemplate pageTemplate, Map fragmentDefinitions)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.pageLayoutComponent = pageLayoutComponent;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.id = id;
&lt;br&gt;@@ -208,7 +208,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/* (non-Javadoc)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @see org.apache.jetspeed.om.page.ContentPage#getPage()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public Page getPage()
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public BaseConcretePageElement getPage()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return page;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/DynamicPageImpl.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/DynamicPageImpl.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/DynamicPageImpl.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/DynamicPageImpl.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/DynamicPageImpl.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -28,22 +28,22 @@
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private static final long serialVersionUID = 1L;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private String pageType;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String contentType;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/* (non-Javadoc)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @see org.apache.jetspeed.om.page.DynamicPage#getPageType()
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see org.apache.jetspeed.om.page.DynamicPage#getContentType()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public String getPageType()
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String getContentType()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return pageType;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return contentType;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/* (non-Javadoc)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @see org.apache.jetspeed.om.page.DynamicPage#setPageType(java.lang.String)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see org.apache.jetspeed.om.page.DynamicPage#setContentType(java.lang.String)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setPageType(String pageType)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setContentType(String contentType)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.pageType = pageType;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.contentType = contentType;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/* (non-Javadoc)
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/psml/DynamicPageImpl.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/psml/DynamicPageImpl.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/psml/DynamicPageImpl.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/psml/DynamicPageImpl.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/psml/DynamicPageImpl.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -28,22 +28,22 @@
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private static final long serialVersionUID = 1L;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private String pageType;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String contentType;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/* (non-Javadoc)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @see org.apache.jetspeed.om.page.DynamicPage#getPageType()
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see org.apache.jetspeed.om.page.DynamicPage#getContentType()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public String getPageType()
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String getContentType()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return pageType;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return contentType;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/* (non-Javadoc)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @see org.apache.jetspeed.om.page.DynamicPage#setPageType(java.lang.String)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see org.apache.jetspeed.om.page.DynamicPage#setContentType(java.lang.String)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void setPageType(String pageType)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setContentType(String contentType)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.pageType = pageType;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.contentType = contentType;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/* (non-Javadoc)
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/AbstractPageManager.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/AbstractPageManager.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/AbstractPageManager.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/AbstractPageManager.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/AbstractPageManager.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -1122,7 +1122,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DynamicPage dynamicPage = newDynamicPage(path);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;copyPageAttributes(source, copyIds, dynamicPage);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dynamicPage.setHidden(source.isHidden());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dynamicPage.setPageType(source.getPageType());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dynamicPage.setContentType(source.getContentType());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return dynamicPage;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/resources/JETSPEED-INF/castor/page-mapping.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/resources/JETSPEED-INF/castor/page-mapping.xml?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/resources/JETSPEED-INF/castor/page-mapping.xml?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/resources/JETSPEED-INF/castor/page-mapping.xml (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/resources/JETSPEED-INF/castor/page-mapping.xml Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -95,8 +95,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; extends=&amp;quot;org.apache.jetspeed.om.page.psml.AbstractBaseConcretePageElement&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;map-to xml=&amp;quot;dynamic-page&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;field name=&amp;quot;pageType&amp;quot; type=&amp;quot;string&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;bind-xml name=&amp;quot;type&amp;quot; node=&amp;quot;attribute&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;field name=&amp;quot;contentType&amp;quot; type=&amp;quot;string&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;bind-xml name=&amp;quot;content-type&amp;quot; node=&amp;quot;attribute&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/field&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/class&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/resources/JETSPEED-INF/ojb/page-manager-repository.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/resources/JETSPEED-INF/ojb/page-manager-repository.xml?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/resources/JETSPEED-INF/ojb/page-manager-repository.xml?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/resources/JETSPEED-INF/ojb/page-manager-repository.xml (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/resources/JETSPEED-INF/ojb/page-manager-repository.xml Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -1578,8 +1578,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;!-- org.apache.jetspeed.om.page.impl.DynamicPageImpl mapping --&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;field-descriptor
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; name=&amp;quot;pageType&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; column=&amp;quot;PAGE_TYPE&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; name=&amp;quot;contentType&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; column=&amp;quot;CONTENT_TYPE&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; jdbc-type=&amp;quot;VARCHAR&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestCastorXmlPageManager.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestCastorXmlPageManager.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestCastorXmlPageManager.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestCastorXmlPageManager.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestCastorXmlPageManager.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -336,7 +336,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DynamicPage testdynamicpage = pageManager.getDynamicPage(&amp;quot;/test001.dpsml&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(testdynamicpage.getId().equals(&amp;quot;/test001.dpsml&amp;quot;));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(testdynamicpage.getPageType().equals(&amp;quot;default&amp;quot;)); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(testdynamicpage.getContentType().equals(&amp;quot;default&amp;quot;)); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(testdynamicpage.getTitle().equals(&amp;quot;Test Dynamic Page&amp;quot;));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(testdynamicpage.getVersion().equals(&amp;quot;2.77&amp;quot;));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rootFragmentElement = testdynamicpage.getRootFragment();
&lt;br&gt;@@ -501,7 +501,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(bf instanceof PageFragment);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DynamicPage dynamicpage = pageManager.newDynamicPage(&amp;quot;/test002.dpsml&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dynamicpage.setPageType(&amp;quot;default&amp;quot;); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dynamicpage.setContentType(&amp;quot;default&amp;quot;); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dynamicpage.setTitle(&amp;quot;Created Dynamic Page&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rootFragmentElement = dynamicpage.getRootFragment();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(rootFragmentElement instanceof Fragment);
&lt;br&gt;@@ -528,7 +528,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dynamicpage = pageManager.getDynamicPage(&amp;quot;/test002.dpsml&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(dynamicpage);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(dynamicpage.getId().equals(&amp;quot;/test002.dpsml&amp;quot;));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;default&amp;quot;, dynamicpage.getPageType());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;default&amp;quot;, dynamicpage.getContentType());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Created Dynamic Page&amp;quot;, dynamicpage.getTitle());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(dynamicpage.getRootFragment());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rootFragmentElement = dynamicpage.getRootFragment();
&lt;br&gt;@@ -1422,7 +1422,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DynamicPage clonedynamicpage = pageManager.copyDynamicPage(testdynamicpage, &amp;quot;/cloned.dpsml&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(clonedynamicpage);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(clonedynamicpage.getId().equals(&amp;quot;/cloned.dpsml&amp;quot;));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(clonedynamicpage.getPageType().equals(&amp;quot;default&amp;quot;)); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(clonedynamicpage.getContentType().equals(&amp;quot;default&amp;quot;)); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(clonedynamicpage.getTitle().equals(&amp;quot;Clone Test Dynamic Page&amp;quot;));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rootFragmentElement = clonedynamicpage.getRootFragment();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(rootFragmentElement instanceof Fragment);
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestDatabasePageManager.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestDatabasePageManager.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestDatabasePageManager.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestDatabasePageManager.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestDatabasePageManager.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -454,7 +454,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageManager.updatePageTemplate(pageTemplate);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DynamicPage dynamicPage = pageManager.newDynamicPage(&amp;quot;/dynamic-page.dpsml&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dynamicPage.setPageType(&amp;quot;default&amp;quot;); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dynamicPage.setContentType(&amp;quot;default&amp;quot;); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dynamicPage.setTitle(&amp;quot;Created Dynamic Page&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rootFragmentElement = dynamicPage.getRootFragment();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(rootFragmentElement instanceof Fragment);
&lt;br&gt;@@ -694,7 +694,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DynamicPage check = pageManager.getDynamicPage(&amp;quot;/dynamic-page.dpsml&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(check);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;default&amp;quot;, check.getPageType());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;default&amp;quot;, check.getContentType());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;Created Dynamic Page&amp;quot;, check.getTitle());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(check.getRootFragment());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseFragmentElement rootFragmentElement = check.getRootFragment();
&lt;br&gt;@@ -1062,7 +1062,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DynamicPage dynamicPage = pageManager.getDynamicPage(&amp;quot;/dynamic-page.dpsml&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;/dynamic-page.dpsml&amp;quot;, dynamicPage.getPath());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dynamicPage.setTitle(&amp;quot;UPDATED&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dynamicPage.setPageType(&amp;quot;UPDATED&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dynamicPage.setContentType(&amp;quot;UPDATED&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageManager.updateDynamicPage(dynamicPage);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;FragmentDefinition fragmentDefinition = pageManager.getFragmentDefinition(&amp;quot;/fragment-definition.fpsml&amp;quot;);
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/test/testdata/pages/clonetest.dpsml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/test/testdata/pages/clonetest.dpsml?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/test/testdata/pages/clonetest.dpsml?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/test/testdata/pages/clonetest.dpsml (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/test/testdata/pages/clonetest.dpsml Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -15,7 +15,7 @@
&lt;br&gt;&amp;nbsp;See the License for the specific language governing permissions and
&lt;br&gt;&amp;nbsp;limitations under the License.
&lt;br&gt;&amp;nbsp;--&amp;gt;
&lt;br&gt;-&amp;lt;dynamic-page id=&amp;quot;clonetest&amp;quot; type=&amp;quot;default&amp;quot;
&lt;br&gt;+&amp;lt;dynamic-page id=&amp;quot;clonetest&amp;quot; content-type=&amp;quot;default&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns=&amp;quot;&lt;a href=&quot;http://portals.apache.org/jetspeed&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://portals.apache.org/jetspeed&lt;/a&gt;&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns:xsi=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&amp;quot; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;xsi:schemaLocation=&amp;quot;&lt;a href=&quot;http://portals.apache.org/jetspeed&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://portals.apache.org/jetspeed&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://portals.apache.org/jetspeed-2/2.1/schemas/psml.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://portals.apache.org/jetspeed-2/2.1/schemas/psml.xsd&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/test/testdata/pages/test001.dpsml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/test/testdata/pages/test001.dpsml?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/test/testdata/pages/test001.dpsml?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/test/testdata/pages/test001.dpsml (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/test/testdata/pages/test001.dpsml Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -15,7 +15,7 @@
&lt;br&gt;&amp;nbsp;See the License for the specific language governing permissions and
&lt;br&gt;&amp;nbsp;limitations under the License.
&lt;br&gt;&amp;nbsp;--&amp;gt;
&lt;br&gt;-&amp;lt;dynamic-page id=&amp;quot;test001&amp;quot; type=&amp;quot;default&amp;quot; version='2.77'
&lt;br&gt;+&amp;lt;dynamic-page id=&amp;quot;test001&amp;quot; content-type=&amp;quot;default&amp;quot; version='2.77'
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns=&amp;quot;&lt;a href=&quot;http://portals.apache.org/jetspeed&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://portals.apache.org/jetspeed&lt;/a&gt;&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;xmlns:xsi=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&amp;quot; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;xsi:schemaLocation=&amp;quot;&lt;a href=&quot;http://portals.apache.org/jetspeed&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://portals.apache.org/jetspeed&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://portals.apache.org/jetspeed-2/2.1/schemas/psml.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://portals.apache.org/jetspeed-2/2.1/schemas/psml.xsd&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;&lt;br&gt;Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/AbstractPatternMapping.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/AbstractPatternMapping.java?rev=891420&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/AbstractPatternMapping.java?rev=891420&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/AbstractPatternMapping.java (added)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/AbstractPatternMapping.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -0,0 +1,39 @@
&lt;br&gt;+package org.apache.jetspeed.portalsite.impl;
&lt;br&gt;+
&lt;br&gt;+import java.util.regex.Matcher;
&lt;br&gt;+import java.util.regex.Pattern;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * This class specifies an abstract pattern mapping definition for use
&lt;br&gt;+ * by the portal-site content type mapper component mappings.
&lt;br&gt;+ * 
&lt;br&gt;+ * @author &amp;lt;a href=&amp;quot;mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818045&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rwatler@...&lt;/a&gt;&amp;quot;&amp;gt;Randy Watler&amp;lt;/a&amp;gt;
&lt;br&gt;+ * @version $Id:$
&lt;br&gt;+ */
&lt;br&gt;+public class AbstractPatternMapping
&lt;br&gt;+{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String pattern;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private Pattern compiledPattern;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Construct pattern mapping.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param pattern mapping pattern
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected AbstractPatternMapping(String pattern)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.pattern = pattern;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.compiledPattern = Pattern.compile(pattern);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Allocate new matcher for mapping pattern.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param input input string
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return allocated matcher
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected Matcher getPatternMatcher(String input)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return compiledPattern.matcher(input);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/ContentTypeMapping.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/ContentTypeMapping.java?rev=891420&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/ContentTypeMapping.java?rev=891420&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/ContentTypeMapping.java (added)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/ContentTypeMapping.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -0,0 +1,55 @@
&lt;br&gt;+package org.apache.jetspeed.portalsite.impl;
&lt;br&gt;+
&lt;br&gt;+import java.util.regex.Matcher;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * This class specifies a content type mapping definition for use
&lt;br&gt;+ * by the portal-site content type mapper component.
&lt;br&gt;+ * 
&lt;br&gt;+ * @author &amp;lt;a href=&amp;quot;mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818045&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rwatler@...&lt;/a&gt;&amp;quot;&amp;gt;Randy Watler&amp;lt;/a&amp;gt;
&lt;br&gt;+ * @version $Id:$
&lt;br&gt;+ */
&lt;br&gt;+public class ContentTypeMapping extends AbstractPatternMapping
&lt;br&gt;+{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String mappedType;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private boolean mappedTypeReplacements;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Construct content type pattern mapping.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param pattern request path matching pattern
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param mappedType resulting content type
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public ContentTypeMapping(String pattern, String mappedType)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super(pattern);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.mappedType = mappedType;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.mappedTypeReplacements = (mappedType.indexOf('$') != -1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Match content type pattern against request path, replacing
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * all subsequence expressions in the mapped type.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param requestPath request path to match
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return mapped content type or null if not matched
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String map(String requestPath)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Matcher patternMatcher = getPatternMatcher(requestPath);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (patternMatcher.find())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String type = mappedType;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (mappedTypeReplacements)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; (i &amp;lt;= patternMatcher.groupCount()); i++)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String groupMatch = requestPath.substring(patternMatcher.start(i), patternMatcher.end(i));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;type = type.replace(&amp;quot;$&amp;quot;+i, groupMatch);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return type;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/MenuImpl.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/MenuImpl.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/MenuImpl.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/MenuImpl.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/MenuImpl.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -175,7 +175,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// limit cyclic references to this menu if named and
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// referencable as root menu instance
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// referenced as root menu instance
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean menuNameReferenced = false;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((definition.getName() != null) &amp;&amp; (parent == null))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/MenuOptionImpl.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/MenuOptionImpl.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/MenuOptionImpl.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/MenuOptionImpl.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/MenuOptionImpl.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -19,6 +19,7 @@
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.folder.Folder;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.folder.MenuOptionsDefinition;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.Link;
&lt;br&gt;+import org.apache.jetspeed.om.page.BaseConcretePageElement;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.Page;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.page.document.Node;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.page.document.NodeNotFoundException;
&lt;br&gt;@@ -187,7 +188,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (context != null)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// get request page
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page requestPage = null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement requestPage = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;requestPage = context.getPage();
&lt;br&gt;&lt;br&gt;Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/PortalSiteContentTypeMapperImpl.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/PortalSiteContentTypeMapperImpl.java?rev=891420&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/PortalSiteContentTypeMapperImpl.java?rev=891420&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/PortalSiteContentTypeMapperImpl.java (added)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/PortalSiteContentTypeMapperImpl.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -0,0 +1,110 @@
&lt;br&gt;+package org.apache.jetspeed.portalsite.impl;
&lt;br&gt;+
&lt;br&gt;+import java.util.List;
&lt;br&gt;+
&lt;br&gt;+import org.apache.jetspeed.om.page.Page;
&lt;br&gt;+import org.apache.jetspeed.portalsite.PortalSiteContentTypeMapper;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * This class implements the the content type mapper component
&lt;br&gt;+ * for use with the portal-site component.
&lt;br&gt;+ * 
&lt;br&gt;+ * @author &amp;lt;a href=&amp;quot;mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818045&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rwatler@...&lt;/a&gt;&amp;quot;&amp;gt;Randy Watler&amp;lt;/a&amp;gt;
&lt;br&gt;+ * @version $Id:$
&lt;br&gt;+ */
&lt;br&gt;+public class PortalSiteContentTypeMapperImpl implements PortalSiteContentTypeMapper
&lt;br&gt;+{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static final String DEFAULT_PAGE_SYSTEM_TYPE_SUFFIX = Page.DOCUMENT_TYPE;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private List&amp;lt;ContentTypeMapping&amp;gt; contentTypeMappings;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private List&amp;lt;RequestPathMapping&amp;gt; requestPathMappings;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Construct default PortalSite content type mapper implementation.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public PortalSiteContentTypeMapperImpl()
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this(null);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Construct default PortalSite content type mapper implementation.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param contentTypeMappings mappings to determine content type from request path
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public PortalSiteContentTypeMapperImpl(List&amp;lt;ContentTypeMapping&amp;gt; contentTypeMappings)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this(contentTypeMappings, null);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Construct default PortalSite content type mapper implementation.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param contentTypeMappings mappings to determine content type from request path
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param requestPathMappings mappings to determine request path from server name,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;content type, and request path
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public PortalSiteContentTypeMapperImpl(List&amp;lt;ContentTypeMapping&amp;gt; contentTypeMappings, List&amp;lt;RequestPathMapping&amp;gt; requestPathMappings)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.contentTypeMappings = contentTypeMappings;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.requestPathMappings = requestPathMappings;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/* (non-Javadoc)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see org.apache.jetspeed.portalsite.PortalSiteContentTypeMapper#mapContentType(java.lang.String)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String mapContentType(String requestPath)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// match content type patterns to determine content types
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (contentTypeMappings != null)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (ContentTypeMapping mapping : contentTypeMappings)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String contentType = mapping.map(requestPath);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (contentType != null)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return contentType;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/* (non-Javadoc)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see org.apache.jetspeed.portalsite.PortalSiteContentTypeMapper#mapRequestPath(java.lang.String, java.lang.String, java.lang.String)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String mapRequestPath(String serverName, String contentType, String requestPath)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (requestPathMappings != null)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean requestPathMapped = false;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (RequestPathMapping mapping : requestPathMappings)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String mappedRequestPath = mapping.map(serverName, contentType, requestPath);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((mappedRequestPath != null) &amp;&amp; !mappedRequestPath.equals(requestPath))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;requestPath = mappedRequestPath;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;requestPathMapped = true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (requestPathMapped)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return requestPath;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/* (non-Javadoc)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see org.apache.jetspeed.portalsite.PortalSiteContentTypeMapper#mapSystemType(java.lang.String)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String mapSystemType(String requestPath)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// match request path suffixes to determine page requests
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (requestPath.endsWith(DEFAULT_PAGE_SYSTEM_TYPE_SUFFIX))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return PAGE_SYSTEM_TYPE;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/PortalSiteImpl.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/PortalSiteImpl.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/PortalSiteImpl.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/PortalSiteImpl.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/PortalSiteImpl.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -18,6 +18,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.page.PageManager;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.portalsite.PortalSite;
&lt;br&gt;+import org.apache.jetspeed.portalsite.PortalSiteContentTypeMapper;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.portalsite.PortalSiteSessionContext;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;@@ -32,15 +33,22 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * pageManager - PageManager component
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private PageManager pageManager;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * contentTypeMapper - PortalSiteContentTypeMapper component
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private PortalSiteContentTypeMapper contentTypeMapper;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * PortalSiteImpl - component constructor
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param pageManager PageManager component instance
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param contentTypeMapper PortalSiteContentTypeMapper component instance
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public PortalSiteImpl(PageManager pageManager)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public PortalSiteImpl(PageManager pageManager, PortalSiteContentTypeMapper contentTypeMapper)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.pageManager = pageManager;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.contentTypeMapper = contentTypeMapper;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;@@ -50,7 +58,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public PortalSiteSessionContext newSessionContext()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new PortalSiteSessionContextImpl(pageManager);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new PortalSiteSessionContextImpl(pageManager, contentTypeMapper);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;@@ -62,4 +70,14 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return pageManager;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * getContentTypeMapper - return PortalSiteContentTypeMapper component instance
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; *
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return PortalSiteContentTypeMapper instance
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public PortalSiteContentTypeMapper getContentTypeMapper()
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return contentTypeMapper;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/PortalSiteRequestContextImpl.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/PortalSiteRequestContextImpl.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/PortalSiteRequestContextImpl.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/PortalSiteRequestContextImpl.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/PortalSiteRequestContextImpl.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -28,7 +28,7 @@
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.folder.Folder;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.FragmentDefinition;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.FragmentReference;
&lt;br&gt;-import org.apache.jetspeed.om.page.Page;
&lt;br&gt;+import org.apache.jetspeed.om.page.BaseConcretePageElement;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.PageTemplate;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.page.document.Node;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.page.document.NodeException;
&lt;br&gt;@@ -79,7 +79,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * requestPage - cached request profiled page proxy
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private Page requestPage;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private BaseConcretePageElement requestPage;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * requestPageTemplate - cached request page template proxy
&lt;br&gt;@@ -230,14 +230,14 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * getManagedPage - get request profiled concrete page instance
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;as managed by the page manager
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * getManagedPage - get request profiled concrete page or dynamic page
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;instance as managed by the page manager
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return managed page
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws NodeNotFoundException if page not found
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws SecurityException if page view access not granted
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public Page getManagedPage() throws NodeNotFoundException
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public BaseConcretePageElement getManagedPage() throws NodeNotFoundException
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return sessionContext.getManagedPage(getPage()); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -296,7 +296,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws NodeNotFoundException if page not found
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws SecurityException if page view access not granted
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public Page getPage() throws NodeNotFoundException
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public BaseConcretePageElement getPage() throws NodeNotFoundException
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// select request page from session context using
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// request profile locators if not previously
&lt;br&gt;@@ -320,7 +320,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!requestPageTemplateCached)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// get requested page
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page page = getPage();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement page = getPage();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (page != null)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// scan through site looking for first page template
&lt;br&gt;@@ -365,7 +365,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!requestFragmentDefinitionsCached)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// get requested page and optional page template
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page page = getPage();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement page = getPage();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PageTemplate pageTemplate = getPageTemplate();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (page != null)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;@@ -471,7 +471,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public Folder getFolder() throws NodeNotFoundException
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// return parent folder of request page
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page page = getPage();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement page = getPage();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (page != null)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return (Folder)page.getParent();
&lt;br&gt;@@ -650,7 +650,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// access page and page templates to force request
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// page resolution
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page page = getPage();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement page = getPage();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PageTemplate pageTemplate = getPageTemplate();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// return available menu definition names from
&lt;br&gt;@@ -732,7 +732,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// access page and page template to force request
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// page resolution
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page page = getPage();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement page = getPage();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PageTemplate pageTemplate = getPageTemplate();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((page != null) &amp;&amp; (name != null))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818045&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818045&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Jetspeed---Dev-f199.html&quot; embed=&quot;fixTarget[199]&quot; target=&quot;_top&quot; &gt;Jetspeed - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r891420--1-2----in--portals-jetspeed-2-portal-trunk%3A-applications-jetspeed-src-main-webapp-WEB-INF-pages--components-jetspeed-locator-src-main-java-org-apache-jetspeed-profiler-impl--components-jetspeed-page-layout-src-main-java-org-apache-...-tp26818045p26818045.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26818046</id>
	<title>svn commit: r891420 [2/2] - in /portals/jetspeed-2/portal/trunk: applications/jetspeed/src/main/webapp/WEB-INF/pages/ components/jetspeed-locator/src/main/java/org/apache/jetspeed/profiler/impl/ components/jetspeed-page-layout/src/main/java/org/apache/...</title>
	<published>2009-12-16T12:38:23Z</published>
	<updated>2009-12-16T12:38:23Z</updated>
	<author>
		<name>rwatler</name>
	</author>
	<content type="html">Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/PortalSiteSessionContextImpl.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/PortalSiteSessionContextImpl.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/PortalSiteSessionContextImpl.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/PortalSiteSessionContextImpl.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/PortalSiteSessionContextImpl.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -32,8 +32,10 @@
&lt;br&gt;&amp;nbsp;import javax.servlet.http.HttpSessionEvent;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.folder.Folder;
&lt;br&gt;+import org.apache.jetspeed.om.folder.FolderNotFoundException;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.DynamicPage;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.FragmentDefinition;
&lt;br&gt;+import org.apache.jetspeed.om.page.BaseConcretePageElement;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.Page;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.PageTemplate;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.page.PageManager;
&lt;br&gt;@@ -42,6 +44,7 @@
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.page.document.NodeException;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.page.document.NodeNotFoundException;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.page.document.NodeSet;
&lt;br&gt;+import org.apache.jetspeed.portalsite.PortalSiteContentTypeMapper;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.portalsite.PortalSiteRequestContext;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.portalsite.PortalSiteSessionContext;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.portalsite.view.SiteView;
&lt;br&gt;@@ -89,6 +92,11 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private transient PageManager pageManager;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * contentTypeMapper - PortalSiteContentTypeMapper component
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private transient PortalSiteContentTypeMapper contentTypeMapper;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * profileLocators - map of session profile locators by locator names
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private transient Map profileLocators;
&lt;br&gt;@@ -140,10 +148,12 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * PortalSiteSessionContextImpl - constructor
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param pageManager PageManager component instance
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param contentTypeMapper PortalSiteContentTypeMapper component instance
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public PortalSiteSessionContextImpl(PageManager pageManager)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public PortalSiteSessionContextImpl(PageManager pageManager, PortalSiteContentTypeMapper contentTypeMapper)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.pageManager = pageManager;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.contentTypeMapper = contentTypeMapper;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;@@ -214,13 +224,14 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws NodeNotFoundException if not found
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws SecurityException if view access not granted
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public Page selectRequestPage(Map requestProfileLocators, boolean requestFallback, boolean useHistory, boolean forceReservedVisible) throws NodeNotFoundException
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public BaseConcretePageElement selectRequestPage(Map requestProfileLocators, boolean requestFallback, boolean useHistory, boolean forceReservedVisible) throws NodeNotFoundException
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// validate and update session profile locators if modified
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (updateSessionProfileLocators(requestProfileLocators, forceReservedVisible))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// extract page request path from the locators
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// extract page request path and server from the locators
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String requestPath = Folder.PATH_SEPARATOR;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String requestServerName = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ProfileLocator locator = (ProfileLocator)requestProfileLocators.get(ProfileLocator.PAGE_LOCATOR);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (locator != null)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;@@ -237,6 +248,62 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator = (ProfileLocator)requestProfileLocators.values().iterator().next();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;requestPath = locator.getRequestPath();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;requestServerName = locator.getRequestServerName();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (log.isDebugEnabled())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;log.debug(&amp;quot;Select request page: requestPath=&amp;quot;+requestPath+&amp;quot;, requestServerName: &amp;quot;+requestServerName);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// determine content mapping for request path if content type
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// mapper configured for context
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (contentTypeMapper != null)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// test for system page or folder request mappings; if system
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// types matched, continue below with native portal resolution
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// of request
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String systemType = contentTypeMapper.mapSystemType(requestPath);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (systemType == null)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// test for content type mappings; if no content type matched
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// request, continue with native portal resolution of request
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String contentType = contentTypeMapper.mapContentType(requestPath);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (contentType != null)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// log mapping
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (log.isDebugEnabled())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;log.debug(&amp;quot;Content request: requestPath=&amp;quot;+requestPath+&amp;quot;, mapped to content type: &amp;quot;+contentType);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// support request path mapping of content requests
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String mappedRequestPath = contentTypeMapper.mapRequestPath(requestServerName, contentType, requestPath);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (mappedRequestPath != null)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// log mapping
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (log.isDebugEnabled())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;log.debug(&amp;quot;Mapped content request: serverName=&amp;quot;+requestServerName+&amp;quot;, contentType=&amp;quot;+contentType+&amp;quot;, requestPath=&amp;quot;+requestPath+&amp;quot;, mapped to: &amp;quot;+mappedRequestPath);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;requestPath = mappedRequestPath;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// attempt to match content request against dynamic pages
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// using profile locators and site view; start at root
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// folder until path no longer matches and search from
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// there back up toward the root for dynamic pages by
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// content type; fallback to wildcard content type
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return selectContentRequestPage(requestPath, contentType);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// log mapping
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (log.isDebugEnabled())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;log.debug(&amp;quot;System request: requestPath=&amp;quot;+requestPath+&amp;quot;, mapped to system type: &amp;quot;+systemType);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// attempt to select request page or folder using
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// profile locators and site view; if fallback
&lt;br&gt;@@ -405,10 +472,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// log modified page request
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (log.isDebugEnabled() &amp;&amp; !path.equals(requestPath))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;log.debug(&amp;quot;Request page modified by profile locator: request path=&amp;quot; + path);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;log.debug(&amp;quot;Request path modified by profile locator: request path=&amp;quot; + path + &amp;quot;, original request path=&amp;quot; + requestPath);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return path;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return path;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -680,6 +747,130 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * selectContentRequestPage - select dynamic page proxy for request for
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;specified content request path and content
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;type given profile locators and site view
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;associated with this context
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; *
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param requestPath request path
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param contentType content type
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return selected dynamic page proxy for request
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws NodeNotFoundException if not found
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws SecurityException if view access not granted
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private DynamicPage selectContentRequestPage(String requestPath, String contentType) throws NodeNotFoundException
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// save access exceptions
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SecurityException accessException = null;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// valid SiteView required from session profile locators
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SiteView view = getSiteView();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (view != null)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// default request to root folder if not specified
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (requestPath == null)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;requestPath = Folder.PATH_SEPARATOR;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// log content page request
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (log.isDebugEnabled())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;log.debug(&amp;quot;Request content page: request path=&amp;quot; + requestPath);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// search for deepest matching content request path
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// that matches request path; start with root folder in view
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Folder contentRequestFolder = (Folder)view.getNodeProxy(Folder.PATH_SEPARATOR, null, false, false);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String contentRequestPath = contentRequestFolder.getPath();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String contentRequestFile = null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (;;)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// find next path name
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int startOfPathNameIndex = (contentRequestPath.equals(Folder.PATH_SEPARATOR) ? 1 : contentRequestPath.length()+1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int endOfPathNameIndex = requestPath.indexOf(Folder.PATH_SEPARATOR, startOfPathNameIndex);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((endOfPathNameIndex == -1) || (endOfPathNameIndex == startOfPathNameIndex))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// find folder in view
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String pathFolderName = requestPath.substring(startOfPathNameIndex, endOfPathNameIndex);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;contentRequestFolder = contentRequestFolder.getFolder(pathFolderName);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;contentRequestPath = contentRequestFolder.getPath();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch (Exception e)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// select matching dynamic pages in folders from deepest
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// to root folders in content request path
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while (contentRequestFolder != null)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// select dynamic page by content type or wildcard match
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NodeSet dynamicPages = contentRequestFolder.getDynamicPages();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((dynamicPages != null) &amp;&amp; !dynamicPages.isEmpty())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// select matching page
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DynamicPage wildcardMatchingPage = null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Iterator dynamicPagesIter = dynamicPages.iterator();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while (dynamicPagesIter.hasNext())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DynamicPage dynamicPage = (DynamicPage)dynamicPagesIter.next();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((dynamicPage.getContentType() == null) || dynamicPage.getContentType().equals(DynamicPage.WILDCARD_CONTENT_TYPE))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;wildcardMatchingPage = dynamicPage;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (dynamicPage.getContentType().equals(contentType))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// log selected dynamic page
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (log.isDebugEnabled())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;log.debug(&amp;quot;Selected &amp;quot;+contentType+&amp;quot; content dynamic page, path=&amp;quot; + view.getManagedDynamicPage(dynamicPage).getPath());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return dynamicPage;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// select wildcard matching page
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (wildcardMatchingPage != null)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// log selected dynamic page
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (log.isDebugEnabled())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;log.debug(&amp;quot;Selected &amp;quot;+contentType+&amp;quot; content dynamic page with wildcard, path=&amp;quot; + view.getManagedDynamicPage(wildcardMatchingPage).getPath());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return wildcardMatchingPage;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch (NodeException ne)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch (SecurityException se)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;accessException = se;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// continue search with parent folder
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;contentRequestFolder = (Folder)contentRequestFolder.getParent();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// no dynamic page matched or accessible
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (accessException != null)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw accessException;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new NodeNotFoundException(&amp;quot;No dynamic page matched &amp;quot; + requestPath + &amp;quot; request in site view.&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * getRequestRootFolder - select root folder proxy for given profile locators
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param requestProfileLocators map of profile locators for request
&lt;br&gt;@@ -938,6 +1129,16 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * getContentTypeMapper - return PortalSiteContentTypeMapper component instance
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; *
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return PortalSiteContentTypeMapper instance
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public PortalSiteContentTypeMapper getContentTypeMapper()
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return contentTypeMapper;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * isValid - return flag indicating whether this context instance
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; is valid or if it is stale after being persisted and
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reloaded as session state
&lt;br&gt;@@ -1000,16 +1201,25 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * getManagedPage - get concrete page instance from page proxy
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * getManagedConcretePage - get concrete page or dynamic page instance
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;from page proxy
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param page page proxy
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return managed page
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public Page getManagedPage(Page page)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public BaseConcretePageElement getManagedPage(BaseConcretePageElement page)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// return managed page in site view
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// return managed page or dynamic page in site view
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SiteView view = getSiteView();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ((view != null) ? view.getManagedPage(page) : null); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (page instanceof Page)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ((view != null) ? view.getManagedPage((Page)page) : null);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (page instanceof DynamicPage)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ((view != null) ? view.getManagedDynamicPage((DynamicPage)page) : null);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&lt;br&gt;Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/RequestPathMapping.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/RequestPathMapping.java?rev=891420&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/RequestPathMapping.java?rev=891420&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/RequestPathMapping.java (added)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/impl/RequestPathMapping.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -0,0 +1,92 @@
&lt;br&gt;+package org.apache.jetspeed.portalsite.impl;
&lt;br&gt;+
&lt;br&gt;+import java.util.regex.Matcher;
&lt;br&gt;+
&lt;br&gt;+import org.apache.jetspeed.om.page.DynamicPage;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * This class specifies a request mapping definition for use
&lt;br&gt;+ * by the portal-site content type mapper component.
&lt;br&gt;+ * 
&lt;br&gt;+ * @author &amp;lt;a href=&amp;quot;mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818046&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rwatler@...&lt;/a&gt;&amp;quot;&amp;gt;Randy Watler&amp;lt;/a&amp;gt;
&lt;br&gt;+ * @version $Id:$
&lt;br&gt;+ */
&lt;br&gt;+public class RequestPathMapping extends AbstractPatternMapping
&lt;br&gt;+{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String serverName;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String contentType;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private String mappedPath;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Construct request path mapping for any server name and
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * content type.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param pattern request path find pattern
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param mappedPath resulting request path
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public RequestPathMapping(String pattern, String mappedPath)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this(null, pattern, mappedPath);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Construct request path mapping for specified content type and
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * any server name.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param contentType request content path
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param pattern request path find pattern
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param mappedPath resulting request path
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public RequestPathMapping(String contentType, String pattern, String mappedPath)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this(null, contentType, pattern, mappedPath);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Construct request path mapping for specified content type and
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * server name or server domain name. Server domain names must
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * start with a '.' character.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param serverName request server name or server domain name
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param contentType request content path
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param pattern request path find pattern
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param mappedPath resulting request path
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public RequestPathMapping(String serverName, String contentType, String pattern, String mappedPath)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super(pattern);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.serverName = serverName;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.contentType = contentType;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.mappedPath = mappedPath;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Match request path pattern against request path, replacing
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * all subsequence expressions in the mapped path.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param requestServerName request server name to match
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param requestContentType request content type to match
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param requestPath request path to map
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return mapped request path or null if pattern not found
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String map(String requestServerName, String requestContentType, String requestPath)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// match server name or server domain name if specified
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((serverName != null) &amp;&amp; (requestServerName != null) &amp;&amp; !serverName.equals(requestServerName) &amp;&amp; (!serverName.startsWith(&amp;quot;.&amp;quot;) || !requestServerName.endsWith(serverName)))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// match content type if specified
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((contentType != null) &amp;&amp; !contentType.equals(DynamicPage.WILDCARD_CONTENT_TYPE) &amp;&amp; (requestContentType != null) &amp;&amp; !contentType.equals(requestContentType))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// find/replace pattern in request path
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Matcher patternMatcher = getPatternMatcher(requestPath);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (patternMatcher.find())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return patternMatcher.replaceAll(mappedPath);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/view/SiteView.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/view/SiteView.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/view/SiteView.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/view/SiteView.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/main/java/org/apache/jetspeed/portalsite/view/SiteView.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -1127,8 +1127,12 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private static boolean isProxyViewable(Node nodeProxy, boolean onlyVisible)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// pages and links are always considered viewable;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// folders must be tested for viewable and visibile
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// pages and links are always considered viewable
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((nodeProxy instanceof Page) || (nodeProxy instanceof Link))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// folders must be tested for viewable and visible
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// child nodes
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (nodeProxy instanceof Folder)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;@@ -1156,7 +1160,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// templates, fragments, and dynamic page are not visible
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/java/JETSPEED-INF/spring/test-spring.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/java/JETSPEED-INF/spring/test-spring.xml?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/java/JETSPEED-INF/spring/test-spring.xml?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/java/JETSPEED-INF/spring/test-spring.xml (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/java/JETSPEED-INF/spring/test-spring.xml Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -167,10 +167,37 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/bean&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;!-- PortalSite --&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;bean id=&amp;quot;org.apache.jetspeed.portalsite.PortalSiteContentTypeMapper&amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; name=&amp;quot;portalSiteContentTypeMapper&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; class=&amp;quot;org.apache.jetspeed.portalsite.impl.PortalSiteContentTypeMapperImpl&amp;quot;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;constructor-arg index=&amp;quot;0&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;list&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;bean class=&amp;quot;org.apache.jetspeed.portalsite.impl.ContentTypeMapping&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;constructor-arg index=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;value&amp;gt;\w[.](\w+)&amp;#36;&amp;lt;/value&amp;gt;&amp;lt;/constructor-arg&amp;gt; &amp;lt;!-- use &amp;#36; for '$' --&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;constructor-arg index=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;value&amp;gt;&amp;#36;1-type&amp;lt;/value&amp;gt;&amp;lt;/constructor-arg&amp;gt; &amp;lt;!-- use &amp;#36; for '$' --&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/bean&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/list&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/constructor-arg&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;constructor-arg index=&amp;quot;1&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;list&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;bean class=&amp;quot;org.apache.jetspeed.portalsite.impl.RequestPathMapping&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;constructor-arg index=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;value&amp;gt;/preview/&amp;lt;/value&amp;gt;&amp;lt;/constructor-arg&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;constructor-arg index=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;value&amp;gt;/&amp;lt;/value&amp;gt;&amp;lt;/constructor-arg&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/bean&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;bean class=&amp;quot;org.apache.jetspeed.portalsite.impl.RequestPathMapping&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;constructor-arg index=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;value&amp;gt;.domain.com&amp;lt;/value&amp;gt;&amp;lt;/constructor-arg&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;constructor-arg index=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;value&amp;gt;doc-type&amp;lt;/value&amp;gt;&amp;lt;/constructor-arg&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;constructor-arg index=&amp;quot;2&amp;quot;&amp;gt;&amp;lt;value&amp;gt;/(?:draft|scratch)/&amp;lt;/value&amp;gt;&amp;lt;/constructor-arg&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;constructor-arg index=&amp;quot;3&amp;quot;&amp;gt;&amp;lt;value&amp;gt;/pub/&amp;lt;/value&amp;gt;&amp;lt;/constructor-arg&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/bean&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/list&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/constructor-arg&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/bean&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;bean id=&amp;quot;org.apache.jetspeed.portalsite.PortalSite&amp;quot; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; name=&amp;quot;portalSite&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; class=&amp;quot;org.apache.jetspeed.portalsite.impl.PortalSiteImpl&amp;quot;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;constructor-arg index=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;ref bean=&amp;quot;pageManager&amp;quot;/&amp;gt;&amp;lt;/constructor-arg&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;constructor-arg index=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;ref bean=&amp;quot;portalSiteContentTypeMapper&amp;quot;/&amp;gt;&amp;lt;/constructor-arg&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/bean&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp;&amp;lt;/beans&amp;gt;
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/java/org/apache/jetspeed/portalsite/TestPortalSite.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/java/org/apache/jetspeed/portalsite/TestPortalSite.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/java/org/apache/jetspeed/portalsite/TestPortalSite.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/java/org/apache/jetspeed/portalsite/TestPortalSite.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/java/org/apache/jetspeed/portalsite/TestPortalSite.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -30,8 +30,10 @@
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.components.test.AbstractSpringTestCase;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.folder.Folder;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.folder.MenuDefinition;
&lt;br&gt;+import org.apache.jetspeed.om.page.DynamicPage;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.FragmentDefinition;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.Link;
&lt;br&gt;+import org.apache.jetspeed.om.page.BaseConcretePageElement;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.Page;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.PageTemplate;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.page.PageManager;
&lt;br&gt;@@ -139,44 +141,11 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Link rootLink0 = pageManager.getLink(&amp;quot;/link0.link&amp;quot;); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(rootLink0);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(rootFolder.getLink(&amp;quot;link0.link&amp;quot;), rootLink0); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DynamicPage docPage = pageManager.getDynamicPage(&amp;quot;/docpage.dpsml&amp;quot;); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(docPage);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(rootFolder.getDynamicPage(&amp;quot;docpage.dpsml&amp;quot;), docPage); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public void testRelativeNavigations() throws Exception
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JetspeedProfileLocator locator = new JetspeedProfileLocator();
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.init(null, &amp;quot;/&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;hostname&amp;quot;, true, false, &amp;quot;dash&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;user&amp;quot;, true, false, &amp;quot;joe&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;page&amp;quot;, false, false, &amp;quot;home&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SiteView profileView = new SiteView(pageManager, locator, false);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;/_hostname/dash/_user/joe,/_hostname/dash,/&amp;quot;, profileView.getSearchPathsString());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator = new JetspeedProfileLocator();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.init(null, &amp;quot;/&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;hostname&amp;quot;, true, false, &amp;quot;dash&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;user&amp;quot;, true, false, &amp;quot;joe&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;navigation&amp;quot;, false, true, &amp;quot;/&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;hostname&amp;quot;, true, false, &amp;quot;dash&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;role&amp;quot;, true, false, &amp;quot;user&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;page&amp;quot;, false, false, &amp;quot;home&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;profileView = new SiteView(pageManager, locator, false);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;/_hostname/dash/_user/joe,/_hostname/dash/_role/user,/_hostname/dash,/&amp;quot;, profileView.getSearchPathsString());
&lt;br&gt;- &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator = new JetspeedProfileLocator();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//locator.init(null, &amp;quot;/__subsite-root&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.init(null, &amp;quot;/&amp;quot;); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;navigation&amp;quot;, false, true, &amp;quot;subsite-root&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;hostname&amp;quot;, true, false, &amp;quot;localhost&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;user&amp;quot;, true, false, &amp;quot;sublocal&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;navigation&amp;quot;, false, true, &amp;quot;subsite-root&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;hostname&amp;quot;, true, false, &amp;quot;localhost&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;role&amp;quot;, true, false, &amp;quot;somerole&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;path&amp;quot;, false, false, &amp;quot;home&amp;quot;);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;profileView = new SiteView(pageManager, locator, false);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;/__subsite-root/_hostname/localhost/_user/sublocal,/__subsite-root/_hostname/localhost/_role/somerole,/__subsite-root/_hostname/localhost,/__subsite-root&amp;quot;, profileView.getSearchPathsString()); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * testSiteView - Test SiteView operation
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;@@ -192,8 +161,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;/&amp;quot;, rootFolderProxy.getName());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;root&amp;quot;, rootFolderProxy.getTitle());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;/&amp;quot;, extractFileSystemPathFromId(rootFolderProxy.getId()));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(4, rootFolderProxy.getFolders().size());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(5, rootFolderProxy.getFolders().size());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Iterator foldersIter = rootFolderProxy.getFolders().iterator();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;contentfolder&amp;quot;, ((Folder)foldersIter.next()).getName());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;folder0&amp;quot;, ((Folder)foldersIter.next()).getName());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;folder1&amp;quot;, ((Folder)foldersIter.next()).getName());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;folder2&amp;quot;, ((Folder)foldersIter.next()).getName());
&lt;br&gt;@@ -208,6 +178,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Iterator linksIter = rootFolderProxy.getLinks().iterator();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;link1.link&amp;quot;, ((Link)linksIter.next()).getName());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;link0.link&amp;quot;, ((Link)linksIter.next()).getName());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(2, rootFolderProxy.getDynamicPages().size());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Iterator dynamicPagesIter = rootFolderProxy.getDynamicPages().iterator();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;contentpage.dpsml&amp;quot;, ((DynamicPage)dynamicPagesIter.next()).getName());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;docpage.dpsml&amp;quot;, ((DynamicPage)dynamicPagesIter.next()).getName());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page rootPage0Proxy = rootFolderProxy.getPage(&amp;quot;page0.psml&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(rootPage0Proxy);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(rootFolderProxy, rootPage0Proxy.getParent());
&lt;br&gt;@@ -222,6 +196,11 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(rootFolderProxy, rootLink0Proxy.getParent());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;link0.link&amp;quot;, rootLink0Proxy.getName());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;/link0.link&amp;quot;, extractFileSystemPathFromId(rootLink0Proxy.getId()));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DynamicPage docPageProxy = rootFolderProxy.getDynamicPage(&amp;quot;docpage.dpsml&amp;quot;); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(docPageProxy);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(rootFolderProxy, docPageProxy.getParent());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;docpage.dpsml&amp;quot;, docPageProxy.getName());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;/docpage.dpsml&amp;quot;, extractFileSystemPathFromId(docPageProxy.getId()));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Folder rootFolder0Proxy = rootFolderProxy.getFolder(&amp;quot;folder0&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(rootFolder0Proxy);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(rootFolderProxy, rootFolder0Proxy.getParent());
&lt;br&gt;@@ -270,7 +249,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(rootPageProxiesByPath.contains(rootPage0Proxy));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List rootFolderProxiesByPath = baseView.getNodeProxies(&amp;quot;/*/&amp;quot;, null, false, false);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(rootFolderProxiesByPath);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(4,rootFolderProxiesByPath.size());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(5,rootFolderProxiesByPath.size());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(rootFolderProxiesByPath.contains(rootFolder0Proxy));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List folderPageProxiesByPath = baseView.getNodeProxies(&amp;quot;*/p*[0-9].psml&amp;quot;, rootFolderProxy, false, false);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(folderPageProxiesByPath);
&lt;br&gt;@@ -285,9 +264,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;/&amp;quot;, rootFolderProxy.getName());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;user root&amp;quot;, rootFolderProxy.getTitle());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;/_user/user&amp;quot;, extractFileSystemPathFromId(rootFolderProxy.getId()));
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(4, rootFolderProxy.getFolders().size());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(5, rootFolderProxy.getFolders().size());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(4, rootFolderProxy.getPages().size());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(2, rootFolderProxy.getLinks().size());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(2, rootFolderProxy.getDynamicPages().size());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rootPage0Proxy = rootFolderProxy.getPage(&amp;quot;page0.psml&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(rootPage0Proxy);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(rootFolderProxy, rootPage0Proxy.getParent());
&lt;br&gt;@@ -466,6 +446,46 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * testRelativeNavigations - Test SiteView search patch for navigation paths
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; *
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws Exception
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testRelativeNavigations() throws Exception
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JetspeedProfileLocator locator = new JetspeedProfileLocator();
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.init(null, &amp;quot;/&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;hostname&amp;quot;, true, false, &amp;quot;dash&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;user&amp;quot;, true, false, &amp;quot;joe&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;page&amp;quot;, false, false, &amp;quot;home&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SiteView profileView = new SiteView(pageManager, locator, false);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;/_hostname/dash/_user/joe,/_hostname/dash,/&amp;quot;, profileView.getSearchPathsString());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator = new JetspeedProfileLocator();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.init(null, &amp;quot;/&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;hostname&amp;quot;, true, false, &amp;quot;dash&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;user&amp;quot;, true, false, &amp;quot;joe&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;navigation&amp;quot;, false, true, &amp;quot;/&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;hostname&amp;quot;, true, false, &amp;quot;dash&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;role&amp;quot;, true, false, &amp;quot;user&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;page&amp;quot;, false, false, &amp;quot;home&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;profileView = new SiteView(pageManager, locator, false);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;/_hostname/dash/_user/joe,/_hostname/dash/_role/user,/_hostname/dash,/&amp;quot;, profileView.getSearchPathsString());
&lt;br&gt;+ &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator = new JetspeedProfileLocator();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.init(null, &amp;quot;/&amp;quot;); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;navigation&amp;quot;, false, true, &amp;quot;subsite-root&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;hostname&amp;quot;, true, false, &amp;quot;localhost&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;user&amp;quot;, true, false, &amp;quot;sublocal&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;navigation&amp;quot;, false, true, &amp;quot;subsite-root&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;hostname&amp;quot;, true, false, &amp;quot;localhost&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;role&amp;quot;, true, false, &amp;quot;somerole&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;path&amp;quot;, false, false, &amp;quot;home&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;profileView = new SiteView(pageManager, locator, false);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;/__subsite-root/_hostname/localhost/_user/sublocal,/__subsite-root/_hostname/localhost/_role/somerole,/__subsite-root/_hostname/localhost,/__subsite-root&amp;quot;, profileView.getSearchPathsString()); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * testPortalSiteSetup - Test PortalSite test configuration
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws Exception
&lt;br&gt;@@ -487,8 +507,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locators.put(ProfileLocator.PAGE_LOCATOR, locator);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PortalSiteRequestContext requestContext = sessionContext.newRequestContext(locators);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(requestContext);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page requestPageProxy = requestContext.getPage();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement requestPageProxy = requestContext.getPage();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(requestPageProxy);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(requestPageProxy instanceof Page);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;page2.psml&amp;quot;, requestPageProxy.getName());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;/_user/user/page2.psml&amp;quot;, extractFileSystemPathFromId(requestPageProxy.getId()));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PageTemplate requestPageTemplateProxy = requestContext.getPageTemplate();
&lt;br&gt;@@ -523,7 +544,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNull(requestParentFolderProxy);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NodeSet requestSiblingFolderProxies = requestContext.getSiblingFolders();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(requestSiblingFolderProxies);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(3, requestSiblingFolderProxies.size());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(4, requestSiblingFolderProxies.size());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(requestSiblingFolderProxies.get(&amp;quot;folder0&amp;quot;));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;/folder0&amp;quot;, extractFileSystemPathFromId(requestSiblingFolderProxies.get(&amp;quot;folder0&amp;quot;).getId()));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(requestSiblingFolderProxies.get(&amp;quot;folder1&amp;quot;));
&lt;br&gt;@@ -561,8 +582,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locators.put(ProfileLocator.PAGE_LOCATOR, locator);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PortalSiteRequestContext requestContext = sessionContext.newRequestContext(locators);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(requestContext);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page requestPageProxy = requestContext.getPage();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement requestPageProxy = requestContext.getPage();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(requestPageProxy);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(requestPageProxy instanceof Page);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;page2.psml&amp;quot;, requestPageProxy.getName());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;/_user/user/page2.psml&amp;quot;, extractFileSystemPathFromId(requestPageProxy.getId()));
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -576,6 +598,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(requestContext);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;requestPageProxy = requestContext.getPage();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(requestPageProxy);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(requestPageProxy instanceof Page);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;page2.psml&amp;quot;, requestPageProxy.getName());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;/_user/user/page2.psml&amp;quot;, extractFileSystemPathFromId(requestPageProxy.getId()));
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -589,6 +612,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(requestContext);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;requestPageProxy = requestContext.getPage();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(requestPageProxy);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(requestPageProxy instanceof Page);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;page1.psml&amp;quot;, requestPageProxy.getName());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;/page1.psml&amp;quot;, extractFileSystemPathFromId(requestPageProxy.getId()));
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -602,6 +626,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(requestContext);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;requestPageProxy = requestContext.getPage();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(requestPageProxy);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(requestPageProxy instanceof Page);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;page0.psml&amp;quot;, requestPageProxy.getName());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;/_user/user/folder1/page0.psml&amp;quot;, extractFileSystemPathFromId(requestPageProxy.getId()));
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -615,6 +640,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(requestContext);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;requestPageProxy = requestContext.getPage();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(requestPageProxy);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(requestPageProxy instanceof Page);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;page0.psml&amp;quot;, requestPageProxy.getName());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;/folder0/page0.psml&amp;quot;, extractFileSystemPathFromId(requestPageProxy.getId()));
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -626,6 +652,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(requestContext);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;requestPageProxy = requestContext.getPage();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(requestPageProxy);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(requestPageProxy instanceof Page);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;page1.psml&amp;quot;, requestPageProxy.getName());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;/folder3/default-folder1/page1.psml&amp;quot;, extractFileSystemPathFromId(requestPageProxy.getId()));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -1335,6 +1362,83 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * testPortalSiteContentRequests - Test PortalSite content request mapping and
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dynamic page resolution
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; *
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws Exception
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void testPotalSiteContentRequests() throws Exception
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(portalSite);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PortalSiteSessionContext sessionContext = portalSite.newSessionContext();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(sessionContext);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JetspeedProfileLocator locator = new JetspeedProfileLocator();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.init(null, &amp;quot;/document.doc&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;user&amp;quot;, true, false, &amp;quot;user&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Map locators = new HashMap();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locators.put(ProfileLocator.PAGE_LOCATOR, locator);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PortalSiteRequestContext requestContext = sessionContext.newRequestContext(locators);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(requestContext);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement requestPageProxy = requestContext.getPage();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(requestPageProxy);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(requestPageProxy instanceof DynamicPage);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;docpage.dpsml&amp;quot;, requestPageProxy.getName());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;/docpage.dpsml&amp;quot;, extractFileSystemPathFromId(requestPageProxy.getId()));
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator = new JetspeedProfileLocator();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.init(null, &amp;quot;/contentfolder/document.doc&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;user&amp;quot;, true, false, &amp;quot;user&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locators = new HashMap();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locators.put(ProfileLocator.PAGE_LOCATOR, locator);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;requestContext = sessionContext.newRequestContext(locators);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(requestContext);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;requestPageProxy = requestContext.getPage();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(requestPageProxy);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(requestPageProxy instanceof DynamicPage);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;docpage.dpsml&amp;quot;, requestPageProxy.getName());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;/contentfolder/docpage.dpsml&amp;quot;, extractFileSystemPathFromId(requestPageProxy.getId()));
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator = new JetspeedProfileLocator();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.init(null, &amp;quot;/contentfolder/document.txt&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;user&amp;quot;, true, false, &amp;quot;user&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locators = new HashMap();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locators.put(ProfileLocator.PAGE_LOCATOR, locator);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;requestContext = sessionContext.newRequestContext(locators);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(requestContext);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;requestPageProxy = requestContext.getPage();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(requestPageProxy);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(requestPageProxy instanceof DynamicPage);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;contentpage.dpsml&amp;quot;, requestPageProxy.getName());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;/contentpage.dpsml&amp;quot;, extractFileSystemPathFromId(requestPageProxy.getId()));
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator = new JetspeedProfileLocator();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.init(null, &amp;quot;/preview/document.doc&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;user&amp;quot;, true, false, &amp;quot;user&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locators = new HashMap();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locators.put(ProfileLocator.PAGE_LOCATOR, locator);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;requestContext = sessionContext.newRequestContext(locators);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(requestContext);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;requestPageProxy = requestContext.getPage();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(requestPageProxy);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(requestPageProxy instanceof DynamicPage);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;docpage.dpsml&amp;quot;, requestPageProxy.getName());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;/docpage.dpsml&amp;quot;, extractFileSystemPathFromId(requestPageProxy.getId()));
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator = new JetspeedProfileLocator();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.init(null, &amp;quot;/preview/contentfolder/draft/document.doc&amp;quot;, &amp;quot;test.domain.com&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.add(&amp;quot;user&amp;quot;, true, false, &amp;quot;user&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locators = new HashMap();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locators.put(ProfileLocator.PAGE_LOCATOR, locator);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;requestContext = sessionContext.newRequestContext(locators);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(requestContext);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;requestPageProxy = requestContext.getPage();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertNotNull(requestPageProxy);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(requestPageProxy instanceof DynamicPage);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;docpage.dpsml&amp;quot;, requestPageProxy.getName());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(&amp;quot;/contentfolder/pub/docpage.dpsml&amp;quot;, extractFileSystemPathFromId(requestPageProxy.getId()));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * extractFileSystemPathFromId - utility to convert proxy ids to file system paths
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @param id proxy node id
&lt;br&gt;&lt;br&gt;Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/contentfolder/docpage.dpsml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/contentfolder/docpage.dpsml?rev=891420&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/contentfolder/docpage.dpsml?rev=891420&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/contentfolder/docpage.dpsml (added)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/contentfolder/docpage.dpsml Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -0,0 +1,27 @@
&lt;br&gt;+&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&lt;br&gt;+
&lt;br&gt;+&amp;lt;!--
&lt;br&gt;+Licensed to the Apache Software Foundation (ASF) under one or more
&lt;br&gt;+contributor license agreements. &amp;nbsp;See the NOTICE file distributed with
&lt;br&gt;+this work for additional information regarding copyright ownership.
&lt;br&gt;+The ASF licenses this file to You under the Apache License, Version 2.0
&lt;br&gt;+(the &amp;quot;License&amp;quot;); you may not use this file except in compliance with
&lt;br&gt;+the License. &amp;nbsp;You may obtain a copy of the License at
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+
&lt;br&gt;+Unless required by applicable law or agreed to in writing, software
&lt;br&gt;+distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&lt;br&gt;+See the License for the specific language governing permissions and
&lt;br&gt;+limitations under the License.
&lt;br&gt;+--&amp;gt;
&lt;br&gt;+
&lt;br&gt;+&amp;lt;dynamic-page id=&amp;quot;docpage&amp;quot; content-type=&amp;quot;doc-type&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xmlns=&amp;quot;&lt;a href=&quot;http://portals.apache.org/jetspeed&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://portals.apache.org/jetspeed&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xmlns:xsi=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xsi:schemaLocation=&amp;quot;&lt;a href=&quot;http://portals.apache.org/jetspeed&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://portals.apache.org/jetspeed&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://portals.apache.org/jetspeed-2/2.1/schemas/psml.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://portals.apache.org/jetspeed-2/2.1/schemas/psml.xsd&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;&amp;lt;title&amp;gt;/contentfolder/docpage.dpsml&amp;lt;/title&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;fragment id=&amp;quot;fake&amp;quot; name=&amp;quot;fake&amp;quot; type=&amp;quot;fake&amp;quot;/&amp;gt;
&lt;br&gt;+&amp;lt;/dynamic-page&amp;gt;
&lt;br&gt;&lt;br&gt;Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/contentfolder/pub/docpage.dpsml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/contentfolder/pub/docpage.dpsml?rev=891420&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/contentfolder/pub/docpage.dpsml?rev=891420&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/contentfolder/pub/docpage.dpsml (added)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/contentfolder/pub/docpage.dpsml Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -0,0 +1,27 @@
&lt;br&gt;+&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&lt;br&gt;+
&lt;br&gt;+&amp;lt;!--
&lt;br&gt;+Licensed to the Apache Software Foundation (ASF) under one or more
&lt;br&gt;+contributor license agreements. &amp;nbsp;See the NOTICE file distributed with
&lt;br&gt;+this work for additional information regarding copyright ownership.
&lt;br&gt;+The ASF licenses this file to You under the Apache License, Version 2.0
&lt;br&gt;+(the &amp;quot;License&amp;quot;); you may not use this file except in compliance with
&lt;br&gt;+the License. &amp;nbsp;You may obtain a copy of the License at
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+
&lt;br&gt;+Unless required by applicable law or agreed to in writing, software
&lt;br&gt;+distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&lt;br&gt;+See the License for the specific language governing permissions and
&lt;br&gt;+limitations under the License.
&lt;br&gt;+--&amp;gt;
&lt;br&gt;+
&lt;br&gt;+&amp;lt;dynamic-page id=&amp;quot;docpage&amp;quot; content-type=&amp;quot;doc-type&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xmlns=&amp;quot;&lt;a href=&quot;http://portals.apache.org/jetspeed&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://portals.apache.org/jetspeed&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xmlns:xsi=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xsi:schemaLocation=&amp;quot;&lt;a href=&quot;http://portals.apache.org/jetspeed&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://portals.apache.org/jetspeed&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://portals.apache.org/jetspeed-2/2.1/schemas/psml.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://portals.apache.org/jetspeed-2/2.1/schemas/psml.xsd&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;&amp;lt;title&amp;gt;/contentfolder/pub/docpage.dpsml&amp;lt;/title&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;fragment id=&amp;quot;fake&amp;quot; name=&amp;quot;fake&amp;quot; type=&amp;quot;fake&amp;quot;/&amp;gt;
&lt;br&gt;+&amp;lt;/dynamic-page&amp;gt;
&lt;br&gt;&lt;br&gt;Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/contentpage.dpsml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/contentpage.dpsml?rev=891420&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/contentpage.dpsml?rev=891420&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/contentpage.dpsml (added)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/contentpage.dpsml Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -0,0 +1,27 @@
&lt;br&gt;+&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&lt;br&gt;+
&lt;br&gt;+&amp;lt;!--
&lt;br&gt;+Licensed to the Apache Software Foundation (ASF) under one or more
&lt;br&gt;+contributor license agreements. &amp;nbsp;See the NOTICE file distributed with
&lt;br&gt;+this work for additional information regarding copyright ownership.
&lt;br&gt;+The ASF licenses this file to You under the Apache License, Version 2.0
&lt;br&gt;+(the &amp;quot;License&amp;quot;); you may not use this file except in compliance with
&lt;br&gt;+the License. &amp;nbsp;You may obtain a copy of the License at
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+
&lt;br&gt;+Unless required by applicable law or agreed to in writing, software
&lt;br&gt;+distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&lt;br&gt;+See the License for the specific language governing permissions and
&lt;br&gt;+limitations under the License.
&lt;br&gt;+--&amp;gt;
&lt;br&gt;+
&lt;br&gt;+&amp;lt;dynamic-page id=&amp;quot;contentpage&amp;quot; content-type=&amp;quot;*&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xmlns=&amp;quot;&lt;a href=&quot;http://portals.apache.org/jetspeed&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://portals.apache.org/jetspeed&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xmlns:xsi=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xsi:schemaLocation=&amp;quot;&lt;a href=&quot;http://portals.apache.org/jetspeed&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://portals.apache.org/jetspeed&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://portals.apache.org/jetspeed-2/2.1/schemas/psml.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://portals.apache.org/jetspeed-2/2.1/schemas/psml.xsd&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;&amp;lt;title&amp;gt;/contentpage.dpsml&amp;lt;/title&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;fragment id=&amp;quot;fake&amp;quot; name=&amp;quot;fake&amp;quot; type=&amp;quot;fake&amp;quot;/&amp;gt;
&lt;br&gt;+&amp;lt;/dynamic-page&amp;gt;
&lt;br&gt;&lt;br&gt;Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/docpage.dpsml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/docpage.dpsml?rev=891420&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/docpage.dpsml?rev=891420&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/docpage.dpsml (added)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal-site/src/test/resources/webapp/WEB-INF/pages/docpage.dpsml Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -0,0 +1,27 @@
&lt;br&gt;+&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&lt;br&gt;+
&lt;br&gt;+&amp;lt;!--
&lt;br&gt;+Licensed to the Apache Software Foundation (ASF) under one or more
&lt;br&gt;+contributor license agreements. &amp;nbsp;See the NOTICE file distributed with
&lt;br&gt;+this work for additional information regarding copyright ownership.
&lt;br&gt;+The ASF licenses this file to You under the Apache License, Version 2.0
&lt;br&gt;+(the &amp;quot;License&amp;quot;); you may not use this file except in compliance with
&lt;br&gt;+the License. &amp;nbsp;You may obtain a copy of the License at
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+
&lt;br&gt;+Unless required by applicable law or agreed to in writing, software
&lt;br&gt;+distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&lt;br&gt;+See the License for the specific language governing permissions and
&lt;br&gt;+limitations under the License.
&lt;br&gt;+--&amp;gt;
&lt;br&gt;+
&lt;br&gt;+&amp;lt;dynamic-page id=&amp;quot;docpage&amp;quot; content-type=&amp;quot;doc-type&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xmlns=&amp;quot;&lt;a href=&quot;http://portals.apache.org/jetspeed&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://portals.apache.org/jetspeed&lt;/a&gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xmlns:xsi=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;xsi:schemaLocation=&amp;quot;&lt;a href=&quot;http://portals.apache.org/jetspeed&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://portals.apache.org/jetspeed&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://portals.apache.org/jetspeed-2/2.1/schemas/psml.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://portals.apache.org/jetspeed-2/2.1/schemas/psml.xsd&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp;&amp;lt;title&amp;gt;/docpage.dpsml&amp;lt;/title&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;fragment id=&amp;quot;fake&amp;quot; name=&amp;quot;fake&amp;quot; type=&amp;quot;fake&amp;quot;/&amp;gt;
&lt;br&gt;+&amp;lt;/dynamic-page&amp;gt;
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/url/impl/AbstractPortalURL.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/url/impl/AbstractPortalURL.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/url/impl/AbstractPortalURL.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/url/impl/AbstractPortalURL.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/url/impl/AbstractPortalURL.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -245,13 +245,13 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public String getPageBasePath()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( null == path || (1 == path.length() &amp;&amp; '/' == path.charAt(0)) )
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (null == path || (1 == path.length() &amp;&amp; '/' == path.charAt(0)))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return basePath;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if ( -1 != path.indexOf('/') &amp;&amp; !path.endsWith(&amp;quot;/&amp;quot;) )
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (-1 != path.indexOf('/'))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return basePath + path.substring(0, path.lastIndexOf('/') );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return basePath + path.substring(0, path.lastIndexOf('/'));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/url/impl/PathInfoEncodingPortalURL.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/url/impl/PathInfoEncodingPortalURL.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/url/impl/PathInfoEncodingPortalURL.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/url/impl/PathInfoEncodingPortalURL.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/url/impl/PathInfoEncodingPortalURL.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -82,6 +82,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;buffer.append(token);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (pathInfo.endsWith(&amp;quot;/&amp;quot;))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;buffer.append(&amp;quot;/&amp;quot;); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ( buffer.length() &amp;gt; 0 )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;path = buffer.toString();
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/UpdatePageAction.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/UpdatePageAction.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/UpdatePageAction.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/UpdatePageAction.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/UpdatePageAction.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -24,7 +24,9 @@
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.ajax.AjaxBuilder;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.layout.PortletActionSecurityBehavior;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.folder.Folder;
&lt;br&gt;+import org.apache.jetspeed.om.page.BaseConcretePageElement;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.BaseFragmentElement;
&lt;br&gt;+import org.apache.jetspeed.om.page.DynamicPage;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.Fragment;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.Page;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.page.PageManager;
&lt;br&gt;@@ -92,7 +94,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return success;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int count = 0;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page page = null; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement page = null; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String path = getActionParameter(requestContext, &amp;quot;path&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (path == null)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;@@ -102,11 +104,24 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!method.equals(&amp;quot;add&amp;quot;))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;page = pageManager.getPage(path);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (path.endsWith(Page.DOCUMENT_TYPE))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;page = pageManager.getPage(path);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (path.endsWith(DynamicPage.DOCUMENT_TYPE))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;page = pageManager.getDynamicPage(path);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;success = false;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;resultMap.put(REASON, &amp;quot;Can't lookup page by document type: &amp;quot; + path); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return success; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (pageManager.pageExists(path))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (pageManager.pageExists(path) || pageManager.dynamicPageExists(path))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;success = false;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;resultMap.put(REASON, &amp;quot;Can't create: Page already exists: &amp;quot; + path); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;@@ -170,22 +185,46 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	String destination = getActionParameter(requestContext, &amp;quot;destination&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	String name = getActionParameter(requestContext, RESOURCE_NAME);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	destination = destination + Folder.PATH_SEPARATOR + name; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 	
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	Page newPage = pageManager.copyPage(page,destination);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	pageManager.updatePage(newPage);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	destination = destination + Folder.PATH_SEPARATOR + name;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	if (page instanceof Page)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	 &amp;nbsp; &amp;nbsp;Page newPage = pageManager.copyPage((Page)page,destination);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	 &amp;nbsp; &amp;nbsp;pageManager.updatePage(newPage);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	else if (page instanceof DynamicPage)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DynamicPage newPage = pageManager.copyDynamicPage((DynamicPage)page,destination);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageManager.updateDynamicPage(newPage); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	 &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (method.equals(&amp;quot;move&amp;quot;))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	String destination = getActionParameter(requestContext, &amp;quot;destination&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	String name = getActionParameter(requestContext, RESOURCE_NAME); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	destination = destination + Folder.PATH_SEPARATOR + name;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	Page newPage = pageManager.copyPage(page, destination, true);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	pageManager.updatePage(newPage);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;	pageManager.removePage(page);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (page instanceof Page)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page newPage = pageManager.copyPage((Page)page, destination, true);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageManager.updatePage(newPage);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageManager.removePage((Page)page);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (page instanceof DynamicPage)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DynamicPage newPage = pageManager.copyDynamicPage((DynamicPage)page, destination, true);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageManager.updateDynamicPage(newPage);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageManager.removeDynamicPage((DynamicPage)page);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (method.equals(&amp;quot;remove&amp;quot;))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageManager.removePage(page);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (page instanceof Page)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageManager.removePage((Page)page);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (page instanceof DynamicPage)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageManager.removeDynamicPage((DynamicPage)page);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (method.equals(&amp;quot;update-fragment&amp;quot;))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;@@ -238,7 +277,14 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (count &amp;gt; 0)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageManager.updatePage(page); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (page instanceof Page)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageManager.updatePage((Page)page);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageManager.updateDynamicPage((DynamicPage)page); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;resultMap.put(&amp;quot;count&amp;quot;, Integer.toString(count));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;resultMap.put(STATUS, status);
&lt;br&gt;@@ -252,7 +298,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return success;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;protected int updatePortletDecorator(RequestContext requestContext, Map resultMap, Page page, String fragmentId, String portletDecorator)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected int updatePortletDecorator(RequestContext requestContext, Map resultMap, BaseConcretePageElement page, String fragmentId, String portletDecorator)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;	int count = 0;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;	BaseFragmentElement fragment = page.getFragmentById(fragmentId);
&lt;br&gt;@@ -264,7 +310,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;	return count;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;protected int updateFragment(RequestContext requestContext, Map resultMap, Page page, String fragmentId, String layout)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected int updateFragment(RequestContext requestContext, Map resultMap, BaseConcretePageElement page, String fragmentId, String layout)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int count = 0;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String sizes = getActionParameter(requestContext, SIZES);
&lt;br&gt;@@ -298,7 +344,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return count;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;protected int addFragment(RequestContext requestContext, Map resultMap, Page page, String parentFragmentId, String layout)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected int addFragment(RequestContext requestContext, Map resultMap, BaseConcretePageElement page, String parentFragmentId, String layout)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int count = 0;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String sizes = getActionParameter(requestContext, SIZES);
&lt;br&gt;@@ -321,7 +367,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return count;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;protected int removeFragment(RequestContext requestContext, Map resultMap, Page page, String fragmentId)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected int removeFragment(RequestContext requestContext, Map resultMap, BaseConcretePageElement page, String fragmentId)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int count = 0;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseFragmentElement fragment = page.getFragmentById(fragmentId);
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/profiler/impl/ProfilerValveImpl.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/profiler/impl/ProfilerValveImpl.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/profiler/impl/ProfilerValveImpl.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/profiler/impl/ProfilerValveImpl.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/profiler/impl/ProfilerValveImpl.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -28,6 +28,7 @@
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.decoration.PageActionAccess;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.layout.PageLayoutComponent;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.ContentPage;
&lt;br&gt;+import org.apache.jetspeed.om.page.BaseConcretePageElement;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.Page;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.PageTemplate;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.page.document.NodeNotFoundException;
&lt;br&gt;@@ -164,6 +165,14 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// save original request in the event it is modified below
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// and some down stream content portlet needs it set
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;request.setAttribute(PortalReservedParameters.PATH_ATTRIBUTE, request.getPath());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (log.isDebugEnabled())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;log.debug(&amp;quot;Request path: &amp;quot;+request.getPath());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// get profiler locators for request subject/principal using the profiler
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Subject subject = request.getSubject();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (subject == null)
&lt;br&gt;@@ -255,14 +264,19 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// as returned by the PageManager component; accessing
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// the managed page here selects the current page for the
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// request
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page managedPage = requestContext.getManagedPage();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement managedPage = requestContext.getManagedPage();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PageTemplate managedPageTemplate = requestContext.getManagedPageTemplate();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Map managedFragmentDefinitions = requestContext.getManagedFragmentDefinitions();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ContentPage contentPage = pageLayoutComponent.newContentPage(managedPage, managedPageTemplate, managedFragmentDefinitions);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;request.setPage(contentPage);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;request.setProfileLocators(requestContext.getLocators());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;request.setAttribute(PortalReservedParameters.PAGE_EDIT_ACCESS_ATTRIBUTE,getPageActionAccess(request)); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;request.setAttribute(PortalReservedParameters.PAGE_EDIT_ACCESS_ATTRIBUTE,getPageActionAccess(request));
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (log.isDebugEnabled())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;log.debug(&amp;quot;Page path: &amp;quot;+contentPage.getPath());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// continue
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/request/JetspeedRequestContext.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/request/JetspeedRequestContext.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/request/JetspeedRequestContext.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/request/JetspeedRequestContext.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/request/JetspeedRequestContext.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -43,7 +43,7 @@
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.ContentFragment;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.ContentPage;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.Fragment;
&lt;br&gt;-import org.apache.jetspeed.om.page.Page;
&lt;br&gt;+import org.apache.jetspeed.om.page.BaseConcretePageElement;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.PageTemplate;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.impl.ContentFragmentImpl;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.portlet.Language;
&lt;br&gt;@@ -584,7 +584,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PortalSiteSessionContext sessionContext = (PortalSiteSessionContext)getSessionAttribute(ProfilerValveImpl.PORTAL_SITE_SESSION_CONTEXT_ATTR_KEY);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PortalSiteRequestContext requestContext = sessionContext.newRequestContext(locators, true, true);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Page managedPage = requestContext.getManagedPage();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BaseConcretePageElement managedPage = requestContext.getManagedPage();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PageTemplate managedPageTemplate = requestContext.getManagedPageTemplate();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Map managedFragmentDefinitions = requestContext.getManagedFragmentDefinitions();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ContentPage cpage = pageLayoutComponent.newContentPage(managedPage, managedPageTemplate, managedFragmentDefinitions);
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/assembly/page-manager.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/assembly/page-manager.xml?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/assembly/page-manager.xml?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/assembly/page-manager.xml (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/assembly/page-manager.xml Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -141,10 +141,23 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/bean&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;!-- PortalSite --&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;bean id=&amp;quot;org.apache.jetspeed.portalsite.PortalSiteContentTypeMapper&amp;quot; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; name=&amp;quot;portalSiteContentTypeMapper&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; class=&amp;quot;org.apache.jetspeed.portalsite.impl.PortalSiteContentTypeMapperImpl&amp;quot;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;constructor-arg index=&amp;quot;0&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;list&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;bean class=&amp;quot;org.apache.jetspeed.portalsite.impl.ContentTypeMapping&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;constructor-arg index=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;value&amp;gt;\w[.](\w+)&amp;#36;&amp;lt;/value&amp;gt;&amp;lt;/constructor-arg&amp;gt; &amp;lt;!-- use &amp;#36; for '$' --&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;constructor-arg index=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;value&amp;gt;&amp;#36;1&amp;lt;/value&amp;gt;&amp;lt;/constructor-arg&amp;gt; &amp;lt;!-- use &amp;#36; for '$' --&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/bean&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/list&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/constructor-arg&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/bean&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;bean id=&amp;quot;org.apache.jetspeed.portalsite.PortalSite&amp;quot; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; name=&amp;quot;portalSite&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; class=&amp;quot;org.apache.jetspeed.portalsite.impl.PortalSiteImpl&amp;quot;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;constructor-arg index=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;ref bean=&amp;quot;pageManager&amp;quot;/&amp;gt;&amp;lt;/constructor-arg&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;constructor-arg index=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;ref bean=&amp;quot;portalSiteContentTypeMapper&amp;quot;/&amp;gt;&amp;lt;/constructor-arg&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/bean&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;bean id=&amp;quot;IdGenerator&amp;quot; class=&amp;quot;org.apache.jetspeed.idgenerator.JetspeedIdGenerator&amp;quot; init-method=&amp;quot;start&amp;quot; destroy-method=&amp;quot;stop&amp;quot;&amp;gt;
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-profiler/src/main/java/org/apache/jetspeed/profiler/impl/JetspeedProfilerImpl.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-profiler/src/main/java/org/apache/jetspeed/profiler/impl/JetspeedProfilerImpl.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-profiler/src/main/java/org/apache/jetspeed/profiler/impl/JetspeedProfilerImpl.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-profiler/src/main/java/org/apache/jetspeed/profiler/impl/JetspeedProfilerImpl.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-profiler/src/main/java/org/apache/jetspeed/profiler/impl/JetspeedProfilerImpl.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -733,7 +733,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ProfileLocator locator = (ProfileLocator) beanFactory.getBean(
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.locatorBean, ProfileLocator.class);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.init(this, context.getPath());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;locator.init(this, context.getPath(), ((context.getRequest() != null) ? context.getRequest().getServerName() : null));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return locator;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} catch (Exception e)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-profiler/src/main/java/org/apache/jetspeed/profiler/rules/impl/PathSessionResolver.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-profiler/src/main/java/org/apache/jetspeed/profiler/rules/impl/PathSessionResolver.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-profiler/src/main/java/org/apache/jetspeed/profiler/rules/impl/PathSessionResolver.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-profiler/src/main/java/org/apache/jetspeed/profiler/rules/impl/PathSessionResolver.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-profiler/src/main/java/org/apache/jetspeed/profiler/rules/impl/PathSessionResolver.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -16,7 +16,6 @@
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;package org.apache.jetspeed.profiler.rules.impl;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-import org.apache.jetspeed.PortalReservedParameters;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.ContentPage;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.profiler.rules.RuleCriterion;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.profiler.rules.RuleCriterionResolver;
&lt;br&gt;@@ -45,8 +44,6 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;path = context.getPath();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (path != null)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;path = mapPath(context, path); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((path == null) || path.equals(&amp;quot;/&amp;quot;))
&lt;br&gt;@@ -61,37 +58,6 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return path; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;private String mapPath(RequestContext context, String originalPath)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String path = originalPath;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (path.endsWith(&amp;quot;.psml&amp;quot;))
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return originalPath;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int ix=0; ix &amp;lt; REGEX_MAP.length; ix++)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (path.matches(REGEX_MAP[ix][0]))
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;path = REGEX_MAP[ix][1];
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;context.setPath(path);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;context.setAttribute(PortalReservedParameters.PATH_ATTRIBUTE, originalPath); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return path;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;// TODO: configure this information externally and live
&lt;br&gt;- &amp;nbsp; &amp;nbsp;static String[][] REGEX_MAP =
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{ &amp;nbsp; &amp;nbsp; 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&amp;quot;.*\\.(...|....)&amp;quot;, &amp;quot;/Public/content.psml&amp;quot;}
&lt;br&gt;-// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&amp;quot;.*\\.html&amp;quot;, &amp;quot;/Public/content.psml&amp;quot;}, &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;-// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&amp;quot;.*\\.pdf&amp;quot;, &amp;quot;/Public/content.psml&amp;quot;}, &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;-// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&amp;quot;/_content.*&amp;quot;, &amp;quot;/Public/content.psml&amp;quot;}
&lt;br&gt;-// &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&amp;quot;/data/*&amp;quot;, &amp;quot;/Public/content2.psml&amp;quot;},
&lt;br&gt;- &amp;nbsp; &amp;nbsp;};
&lt;br&gt;- &amp;nbsp; &amp;nbsp; 
&lt;br&gt;-
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/* (non-Javadoc)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @see org.apache.jetspeed.profiler.rules.RuleCriterionResolver#isControl()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/layout/PageLayoutComponent.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/layout/PageLayoutComponent.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/layout/PageLayoutComponent.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/layout/PageLayoutComponent.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/layout/PageLayoutComponent.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -20,7 +20,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.ContentFragment;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.ContentPage;
&lt;br&gt;-import org.apache.jetspeed.om.page.Page;
&lt;br&gt;+import org.apache.jetspeed.om.page.BaseConcretePageElement;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.PageTemplate;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;@@ -136,7 +136,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;by page and/or page template
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return new content page
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;ContentPage newContentPage(Page page, PageTemplate pageTemplate, Map fragmentDefinitions);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;ContentPage newContentPage(BaseConcretePageElement page, PageTemplate pageTemplate, Map fragmentDefinitions);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Create a new sibling folder with specified configuration and
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/ContentPage.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/ContentPage.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/ContentPage.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/ContentPage.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/ContentPage.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -192,7 +192,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return persistent page or null
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;Page getPage();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;BaseConcretePageElement getPage();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Access underlying concrete persistent page template or
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/DynamicPage.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/DynamicPage.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/DynamicPage.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/DynamicPage.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/DynamicPage.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -28,18 +28,20 @@
&lt;br&gt;&amp;nbsp;public interface DynamicPage extends BaseConcretePageElement, Serializable
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;String DOCUMENT_TYPE = &amp;quot;.dpsml&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;String WILDCARD_CONTENT_TYPE = &amp;quot;*&amp;quot;;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Get the page type name that applies to this page.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Get the content type name that applies to this page.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return the page type name name
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;String getPageType();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;String getContentType();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * Set the page type name for this page.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Set the content type name for this page.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * @param pageType the name of the page type for the page
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param contentType the name of the content type for the page
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;void setPageType(String pageType);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;void setContentType(String contentType);
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portalsite/PortalSite.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portalsite/PortalSite.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portalsite/PortalSite.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portalsite/PortalSite.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portalsite/PortalSite.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -39,4 +39,11 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return PageManager instance
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;PageManager getPageManager();
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * getContentTypeMapper - return PortalSiteContentTypeMapper component instance
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; *
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return PortalSiteContentTypeMapper instance
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;PortalSiteContentTypeMapper getContentTypeMapper();
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&lt;br&gt;Added: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portalsite/PortalSiteContentTypeMapper.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portalsite/PortalSiteContentTypeMapper.java?rev=891420&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portalsite/PortalSiteContentTypeMapper.java?rev=891420&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portalsite/PortalSiteContentTypeMapper.java (added)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portalsite/PortalSiteContentTypeMapper.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -0,0 +1,61 @@
&lt;br&gt;+/*
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one or more
&lt;br&gt;+ * contributor license agreements. &amp;nbsp;See the NOTICE file distributed with
&lt;br&gt;+ * this work for additional information regarding copyright ownership.
&lt;br&gt;+ * The ASF licenses this file to You under the Apache License, Version 2.0
&lt;br&gt;+ * (the &amp;quot;License&amp;quot;); you may not use this file except in compliance with
&lt;br&gt;+ * the License. &amp;nbsp;You may obtain a copy of the License at
&lt;br&gt;+ * 
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ * 
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing, software
&lt;br&gt;+ * distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&lt;br&gt;+ * See the License for the specific language governing permissions and
&lt;br&gt;+ * limitations under the License.
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.jetspeed.portalsite;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * This interface defines the content type mapper component
&lt;br&gt;+ * for use with the portal-site component.
&lt;br&gt;+ * 
&lt;br&gt;+ * @author &amp;lt;a href=&amp;quot;mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818046&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rwatler@...&lt;/a&gt;&amp;quot;&amp;gt;Randy Watler&amp;lt;/a&amp;gt;
&lt;br&gt;+ * @version $Id:$
&lt;br&gt;+ */
&lt;br&gt;+public interface PortalSiteContentTypeMapper
&lt;br&gt;+{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static final String PAGE_SYSTEM_TYPE = &amp;quot;portal-page&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public static final String FOLDER_SYSTEM_TYPE = &amp;quot;portal-folder&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * mapSystemType - map request to system type; implementation should
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return null if type is not known.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; *
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param requestPath raw portal request path
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return mapped system type string or null
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;String mapSystemType(String requestPath);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * mapContentType - map request to content type used to select dynamic
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pages; implementation should return null to handle
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;request as page and folder lookup.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; *
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param requestPath raw portal request path
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return mapped content type string or null
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;String mapContentType(String requestPath);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * mapRequestPath - map content request path given previously mapped content
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;type; implementation should return null to indicate no
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;mapping is available.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; *
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param serverName request server name
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param contentType mapped content type
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param requestPath raw portal request path
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return mapped request path or null
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;String mapRequestPath(String serverName, String contentType, String requestPath);
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portalsite/PortalSiteRequestContext.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portalsite/PortalSiteRequestContext.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portalsite/PortalSiteRequestContext.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portalsite/PortalSiteRequestContext.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portalsite/PortalSiteRequestContext.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -20,7 +20,7 @@
&lt;br&gt;&amp;nbsp;import java.util.Set;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.folder.Folder;
&lt;br&gt;-import org.apache.jetspeed.om.page.Page;
&lt;br&gt;+import org.apache.jetspeed.om.page.BaseConcretePageElement;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.PageTemplate;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.page.document.NodeNotFoundException;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.page.document.NodeSet;
&lt;br&gt;@@ -55,7 +55,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws NodeNotFoundException if page not found
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws SecurityException if page view access not granted
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;Page getManagedPage() throws NodeNotFoundException;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;BaseConcretePageElement getManagedPage() throws NodeNotFoundException;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * getManagedPageTemplate - get request profiled concrete page 
&lt;br&gt;@@ -86,7 +86,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws NodeNotFoundException if page not found
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @throws SecurityException if page view access not granted
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;Page getPage() throws NodeNotFoundException;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;BaseConcretePageElement getPage() throws NodeNotFoundException;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * getPageTemplate - get page template proxy for request profiled page
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portalsite/PortalSiteSessionContext.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portalsite/PortalSiteSessionContext.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portalsite/PortalSiteSessionContext.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portalsite/PortalSiteSessionContext.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portalsite/PortalSiteSessionContext.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -80,6 +80,13 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;PageManager getPageManager();
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * getContentTypeMapper - return PortalSiteContentTypeMapper component instance
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; *
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return PortalSiteContentTypeMapper instance
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;PortalSiteContentTypeMapper getContentTypeMapper();
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * isValid - return flag indicating whether this context instance
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; is valid or if it is stale after being persisted and
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reloaded as session state
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/profiler/ProfileLocator.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/profiler/ProfileLocator.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/profiler/ProfileLocator.java?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/profiler/ProfileLocator.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/profiler/ProfileLocator.java Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -55,6 +55,15 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;void init(Profiler profiler, String requestPath);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Initialize this page context.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; *
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param profiler The profiler initializing this locator.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param requestPath The request path used to create this locator.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param requestServerName The request server name used to create this locator.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;void init(Profiler profiler, String requestPath, String requestServerName);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Get an iterator over the locator's properties.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Elements are returned as @link ProfileLocatorProperty array. 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * &amp;nbsp;
&lt;br&gt;@@ -164,4 +173,12 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @return The request path.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;String getRequestPath();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;p&amp;gt;Retain the request server name to support additional page location mapping
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * not part of the profiler rule criterion.&amp;lt;/p&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return The request server name.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;String getRequestServerName();
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/ddl-schema/phase2-schema.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/ddl-schema/phase2-schema.xml?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/ddl-schema/phase2-schema.xml?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/ddl-schema/phase2-schema.xml (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/ddl-schema/phase2-schema.xml Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -186,7 +186,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;column name=&amp;quot;CLASS_NAME&amp;quot; required=&amp;quot;true&amp;quot; size=&amp;quot;100&amp;quot; type=&amp;quot;VARCHAR&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;column name=&amp;quot;PARENT_ID&amp;quot; type=&amp;quot;INTEGER&amp;quot; required=&amp;quot;true&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;column name=&amp;quot;PATH&amp;quot; required=&amp;quot;true&amp;quot; size=&amp;quot;240&amp;quot; type=&amp;quot;VARCHAR&amp;quot;/&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;column name=&amp;quot;PAGE_TYPE&amp;quot; size=&amp;quot;40&amp;quot; type=&amp;quot;VARCHAR&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;column name=&amp;quot;CONTENT_TYPE&amp;quot; size=&amp;quot;40&amp;quot; type=&amp;quot;VARCHAR&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;column name=&amp;quot;NAME&amp;quot; required=&amp;quot;true&amp;quot; size=&amp;quot;80&amp;quot; type=&amp;quot;VARCHAR&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;column name=&amp;quot;VERSION&amp;quot; size=&amp;quot;40&amp;quot; type=&amp;quot;VARCHAR&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;column name=&amp;quot;TITLE&amp;quot; size=&amp;quot;100&amp;quot; type=&amp;quot;VARCHAR&amp;quot;/&amp;gt;
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/page-manager.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/page-manager.xml?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/page-manager.xml?rev=891420&amp;r1=891419&amp;r2=891420&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/page-manager.xml (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/page-manager.xml Wed Dec 16 20:38:20 2009
&lt;br&gt;@@ -379,12 +379,39 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/bean&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;!-- PortalSite --&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;bean id=&amp;quot;org.apache.jetspeed.portalsite.PortalSiteContentTypeMapper&amp;quot; name=&amp;quot;portalSiteContentTypeMapper&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;class=&amp;quot;org.apache.jetspeed.portalsite.impl.PortalSiteContentTypeMapperImpl&amp;quot;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;meta key=&amp;quot;j2:cat&amp;quot; value=&amp;quot;default&amp;quot; /&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;constructor-arg index=&amp;quot;0&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;list&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;bean class=&amp;quot;org.apache.jetspeed.portalsite.impl.ContentTypeMapping&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;constructor-arg index=&amp;quot;0&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;value&amp;gt;^/content/.*\w[.](\w+)&amp;#36;&amp;lt;/value&amp;gt; &amp;lt;!-- use &amp;#36; for '$' --&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/constructor-arg&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;constructor-arg index=&amp;quot;1&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;value&amp;gt;&amp;#36;1&amp;lt;/value&amp;gt; &amp;lt;!-- use &amp;#36; for '$' --&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/constructor-arg&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/bean&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;bean class=&amp;quot;org.apache.jetspeed.portalsite.impl.ContentTypeMapping&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;constructor-arg index=&amp;quot;0&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;value&amp;gt;^/content/&amp;lt;/value&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/constructor-arg&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;constructor-arg index=&amp;quot;1&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;value&amp;gt;html&amp;lt;/value&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/constructor-arg&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/bean&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/list&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/constructor-arg&amp;gt;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/bean&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;bean id=&amp;quot;org.apache.jetspeed.portalsite.PortalSite&amp;quot; name=&amp;quot;portalSite&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;class=&amp;quot;org.apache.jetspeed.portalsite.impl.PortalSiteImpl&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;meta key=&amp;quot;j2:cat&amp;quot; value=&amp;quot;default&amp;quot; /&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;constructor-arg index=&amp;quot;0&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;ref bean=&amp;quot;org.apache.jetspeed.page.PageManager&amp;quot; /&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/constructor-arg&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;constructor-arg index=&amp;quot;1&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;ref bean=&amp;quot;org.apache.jetspeed.portalsite.PortalSiteContentTypeMapper&amp;quot;/&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/constructor-arg&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/bean&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;!-- PageSerializer, source: xmlPageManager, dest: dbPageMmanager --&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818046&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26818046&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Jetspeed---Dev-f199.html&quot; embed=&quot;fixTarget[199]&quot; target=&quot;_top&quot; &gt;Jetspeed - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r891420--2-2----in--portals-jetspeed-2-portal-trunk%3A-applications-jetspeed-src-main-webapp-WEB-INF-pages--components-jetspeed-locator-src-main-java-org-apache-jetspeed-profiler-impl--components-jetspeed-page-layout-src-main-java-org-apache-...-tp26818046p26818046.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26817843</id>
	<title>svn commit: r891415 - in /portals/jetspeed-2/applications/j2-admin/trunk/src/main: java/org/apache/jetspeed/portlets/content/ webapp/WEB-INF/</title>
	<published>2009-12-16T12:22:15Z</published>
	<updated>2009-12-16T12:22:15Z</updated>
	<author>
		<name>rwatler</name>
	</author>
	<content type="html">Author: rwatler
&lt;br&gt;Date: Wed Dec 16 20:22:15 2009
&lt;br&gt;New Revision: 891415
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=891415&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=891415&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Jetspeed DynamicPage Support - J2-admin Demo Portlet
&lt;br&gt;-----------------------------------------------------------
&lt;br&gt;- added DynamicWebContentPortlet as example DynamicPage 'aware' content portlet
&lt;br&gt;- includes custom URL rewriter, DynamicWebContentRewriter, to support 1:1 overlayed content and portal URL mappings
&lt;br&gt;&lt;br&gt;&lt;br&gt;Added:
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/content/
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/content/DynamicWebContentPortlet.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/content/DynamicWebContentRewriter.java
&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml
&lt;br&gt;&lt;br&gt;Added: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/content/DynamicWebContentPortlet.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/content/DynamicWebContentPortlet.java?rev=891415&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/content/DynamicWebContentPortlet.java?rev=891415&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/content/DynamicWebContentPortlet.java (added)
&lt;br&gt;+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/content/DynamicWebContentPortlet.java Wed Dec 16 20:22:15 2009
&lt;br&gt;@@ -0,0 +1,172 @@
&lt;br&gt;+/*
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one or more
&lt;br&gt;+ * contributor license agreements. &amp;nbsp;See the NOTICE file distributed with
&lt;br&gt;+ * this work for additional information regarding copyright ownership.
&lt;br&gt;+ * The ASF licenses this file to You under the Apache License, Version 2.0
&lt;br&gt;+ * (the &amp;quot;License&amp;quot;); you may not use this file except in compliance with
&lt;br&gt;+ * the License. &amp;nbsp;You may obtain a copy of the License at
&lt;br&gt;+ * 
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ * 
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing, software
&lt;br&gt;+ * distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&lt;br&gt;+ * See the License for the specific language governing permissions and
&lt;br&gt;+ * limitations under the License.
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.jetspeed.portlets.content;
&lt;br&gt;+
&lt;br&gt;+import java.io.ByteArrayInputStream;
&lt;br&gt;+import java.io.IOException;
&lt;br&gt;+import java.io.InputStreamReader;
&lt;br&gt;+import java.io.PrintWriter;
&lt;br&gt;+import java.util.HashMap;
&lt;br&gt;+import java.util.Map;
&lt;br&gt;+
&lt;br&gt;+import javax.portlet.ActionRequest;
&lt;br&gt;+import javax.portlet.ActionResponse;
&lt;br&gt;+import javax.portlet.PortletException;
&lt;br&gt;+import javax.portlet.PortletMode;
&lt;br&gt;+import javax.portlet.RenderRequest;
&lt;br&gt;+import javax.portlet.RenderResponse;
&lt;br&gt;+
&lt;br&gt;+import org.apache.jetspeed.request.RequestContext;
&lt;br&gt;+import org.apache.portals.applications.webcontent.portlet.WebContentHistoryPage;
&lt;br&gt;+import org.apache.portals.applications.webcontent.portlet.WebContentPortlet;
&lt;br&gt;+import org.apache.portals.applications.webcontent.rewriter.WebContentRewriter;
&lt;br&gt;+import org.apache.portals.messaging.PortletMessaging;
&lt;br&gt;+
&lt;br&gt;+import org.slf4j.Logger;
&lt;br&gt;+import org.slf4j.LoggerFactory;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * WebContentPortlet that dynamically adjusts its content url based
&lt;br&gt;+ * on portal request urls. This portlet is designed to work in conjunction
&lt;br&gt;+ * with the DynamicPage PSML and PortalSite component in Jetspeed. 
&lt;br&gt;+ * 
&lt;br&gt;+ * @author &amp;lt;a href=&amp;quot;mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817843&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rwatler@...&lt;/a&gt;&amp;quot;&amp;gt;Randy Watler&amp;lt;/a&amp;gt;
&lt;br&gt;+ * @version $Id$
&lt;br&gt;+ */
&lt;br&gt;+public class DynamicWebContentPortlet extends WebContentPortlet
&lt;br&gt;+{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private final static Logger log = LoggerFactory.getLogger(DynamicWebContentPortlet.class);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/* (non-Javadoc)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see org.apache.portals.applications.webcontent.portlet.WebContentPortlet#processAction(javax.portlet.ActionRequest, javax.portlet.ActionResponse)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void processAction(ActionRequest actionRequest, ActionResponse actionResponse) throws PortletException, IOException
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// process preferences
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (actionRequest.getPortletMode() == PortletMode.EDIT)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;processPreferencesAction(actionRequest, actionResponse);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// extract rewritten action and save in page
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String webContentURL = actionRequest.getParameter(WebContentRewriter.ACTION_PARAMETER_URL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String webContentMethod = actionRequest.getParameter(WebContentRewriter.ACTION_PARAMETER_METHOD);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Map webContentParams = new HashMap(actionRequest.getParameterMap()) ;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;webContentParams.remove(WebContentRewriter.ACTION_PARAMETER_URL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;webContentParams.remove(WebContentRewriter.ACTION_PARAMETER_METHOD);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WebContentHistoryPage webContentPage = new WebContentHistoryPage(webContentURL, webContentParams, webContentMethod);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PortletMessaging.publish(actionRequest, getClass().getName(), webContentPage); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/* (non-Javadoc)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see org.apache.portals.applications.webcontent.portlet.WebContentPortlet#doView(javax.portlet.RenderRequest, javax.portlet.RenderResponse)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// portal request context
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RequestContext rc = (RequestContext) request.getAttribute(RequestContext.REQUEST_PORTALENV);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// default page view rendering
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String viewPage = (String)request.getAttribute(PARAM_VIEW_PAGE);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (viewPage != null)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super.doView(request, response);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// get source web content URL, parameters, and method to view
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String sourceURL = null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Map sourceParams = null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean sourcePostMethod = false;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WebContentHistoryPage webContentPage = (WebContentHistoryPage)PortletMessaging.receive(request, getClass().getName());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (webContentPage != null)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// view rewritten action URL page
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sourceURL = webContentPage.getUrl();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sourceParams = webContentPage.getParams();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sourcePostMethod = webContentPage.isPost(); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// load and validate preferences, (base url and portal base path
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// should both end in a &amp;quot;/&amp;quot; path separator to ensure that relative
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// urls in the content resolve predictably)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String baseURL = request.getPreferences().getValue(&amp;quot;SRC&amp;quot;, null);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String portalBasePath = request.getPreferences().getValue(&amp;quot;PORTALPATH&amp;quot;, null);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((baseURL == null) || (portalBasePath == null))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new PortletException(&amp;quot;Required SRC and PORTALPATH preferences not set&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!baseURL.endsWith(&amp;quot;/&amp;quot;))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;baseURL += &amp;quot;/&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!portalBasePath.startsWith(&amp;quot;/&amp;quot;))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;portalBasePath = &amp;quot;/&amp;quot;+portalBasePath;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!portalBasePath.endsWith(&amp;quot;/&amp;quot;))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;portalBasePath += &amp;quot;/&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// view content page based on portal request URL
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String portalRequestPath = rc.getPath();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!portalRequestPath.startsWith(portalBasePath))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new PortletException(&amp;quot;Unable to map portal request path: &amp;quot;+portalRequestPath+&amp;quot; onto portal base path: &amp;quot;+portalBasePath);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sourceURL = baseURL+portalRequestPath.substring(portalBasePath.length()); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// get web content
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;byte[] content = null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// initialize and lock stateful rewriter
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String basePortalPath = rc.getPortalURL().getPageBasePath();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;initializeRewriter(DynamicWebContentRewriter.class);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;((DynamicWebContentRewriter)getRewriter()).setBasePortalPath(basePortalPath);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// get and rewrite web content
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (log.isDebugEnabled())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;log.debug(&amp;quot;Portal request: &amp;quot;+rc.getPath()+&amp;quot;, Web content: &amp;quot;+sourceURL);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;content = doWebContent(sourceURL, sourceParams, sourcePostMethod, request, response);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;catch (Throwable t)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throw new PortletException(&amp;quot;Error retrieveing web content: &amp;quot;+t, t);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;finally
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// unlock stateful rewriter
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;freeRewriter();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// write web content to portlet writer
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;response.setContentType(&amp;quot;text/html&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PrintWriter writer = response.getWriter();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ByteArrayInputStream bais = new ByteArrayInputStream(content);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;drain(new InputStreamReader(bais, defaultEncoding), writer);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bais.close();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Added: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/content/DynamicWebContentRewriter.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/content/DynamicWebContentRewriter.java?rev=891415&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/content/DynamicWebContentRewriter.java?rev=891415&amp;view=auto&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/content/DynamicWebContentRewriter.java (added)
&lt;br&gt;+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/content/DynamicWebContentRewriter.java Wed Dec 16 20:22:15 2009
&lt;br&gt;@@ -0,0 +1,297 @@
&lt;br&gt;+/*
&lt;br&gt;+ * Licensed to the Apache Software Foundation (ASF) under one or more
&lt;br&gt;+ * contributor license agreements. &amp;nbsp;See the NOTICE file distributed with
&lt;br&gt;+ * this work for additional information regarding copyright ownership.
&lt;br&gt;+ * The ASF licenses this file to You under the Apache License, Version 2.0
&lt;br&gt;+ * (the &amp;quot;License&amp;quot;); you may not use this file except in compliance with
&lt;br&gt;+ * the License. &amp;nbsp;You may obtain a copy of the License at
&lt;br&gt;+ * 
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;+ * 
&lt;br&gt;+ * Unless required by applicable law or agreed to in writing, software
&lt;br&gt;+ * distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
&lt;br&gt;+ * See the License for the specific language governing permissions and
&lt;br&gt;+ * limitations under the License.
&lt;br&gt;+ */
&lt;br&gt;+package org.apache.jetspeed.portlets.content;
&lt;br&gt;+
&lt;br&gt;+import java.util.regex.Pattern;
&lt;br&gt;+import java.util.regex.Matcher;
&lt;br&gt;+
&lt;br&gt;+import javax.portlet.PortletURL;
&lt;br&gt;+
&lt;br&gt;+import org.apache.portals.applications.webcontent.rewriter.MutableAttributes;
&lt;br&gt;+import org.apache.portals.applications.webcontent.rewriter.WebContentRewriter;
&lt;br&gt;+
&lt;br&gt;+import org.slf4j.Logger;
&lt;br&gt;+import org.slf4j.LoggerFactory;
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * WebContentRewriter that overlays page navigation onto portal content paths.
&lt;br&gt;+ * 
&lt;br&gt;+ * @author &amp;lt;a href=&amp;quot;mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817843&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;rwatler@...&lt;/a&gt;&amp;quot;&amp;gt;Randy Watler&amp;lt;/a&amp;gt;
&lt;br&gt;+ * @version $Id$
&lt;br&gt;+ */
&lt;br&gt;+public class DynamicWebContentRewriter extends WebContentRewriter
&lt;br&gt;+{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private final static Logger log = LoggerFactory.getLogger(DynamicWebContentRewriter.class);
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private final static Pattern ONCLICK_LOCATION_PATTERN = Pattern.compile(&amp;quot;[.]location *= *'([^']*)'&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private final static Pattern STYLE_URL_PATTERN = Pattern.compile(&amp;quot;url\\( *\&amp;quot;([^\&amp;quot;]*)\&amp;quot; *\\)&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected String basePortalPath;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String getBasePortalPath()
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return basePortalPath;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setBasePortalPath(String basePortalPath)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.basePortalPath = basePortalPath;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (log.isDebugEnabled())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;log.debug(&amp;quot;basePortalPath: &amp;quot;+basePortalPath);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/* (non-Javadoc)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see org.apache.portals.applications.webcontent.rewriter.AbstractRewriter#setBaseUrl(java.lang.String)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setBaseUrl(String base)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super.setBaseUrl(base);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (log.isDebugEnabled())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;log.debug(&amp;quot;baseUrl: &amp;quot;+base);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/* (non-Javadoc)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see org.apache.portals.applications.webcontent.rewriter.WebContentRewriter#setActionURL(javax.portlet.PortletURL)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public void setActionURL(PortletURL action)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;super.setActionURL(action);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (log.isDebugEnabled())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;log.debug(&amp;quot;actionURL: &amp;quot;+action);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/* (non-Javadoc)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see org.apache.portals.applications.webcontent.rewriter.WebContentRewriter#rewriteUrl(java.lang.String, java.lang.String, java.lang.String, org.apache.portals.applications.webcontent.rewriter.MutableAttributes)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String rewriteUrl(String url, String tag, String attribute, MutableAttributes otherAttributes)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String rewrittenUrl = url;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (tag.equalsIgnoreCase(&amp;quot;A&amp;quot;) &amp;&amp; attribute.equalsIgnoreCase(&amp;quot;href&amp;quot;))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// redirect navigation through portal content urls
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rewrittenUrl = portalURL(url);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (tag.equalsIgnoreCase(&amp;quot;FORM&amp;quot;) &amp;&amp; attribute.equalsIgnoreCase(&amp;quot;action&amp;quot;)) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// redirect forms through portal as action
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getActionURL().setParameter(ACTION_PARAMETER_URL, webContentURL(url));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String httpMethod = otherAttributes.getValue(&amp;quot;method&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (httpMethod != null)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getActionURL().setParameter(ACTION_PARAMETER_METHOD, httpMethod);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rewrittenUrl = getActionURL().toString();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (attribute.equalsIgnoreCase(&amp;quot;onclick&amp;quot;)) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// redirect javascript click navigation through portal content urls
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String javascript = url;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StringBuilder rewrittenJavascript = new StringBuilder();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int rewrittenIndex = 0;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Matcher matcher = ONCLICK_LOCATION_PATTERN.matcher(javascript);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while (matcher.find())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rewrittenJavascript.append(javascript.substring(rewrittenIndex,matcher.start(1)));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rewrittenJavascript.append(portalURL(matcher.group(1)));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rewrittenIndex = matcher.end(1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (rewrittenIndex &amp;gt; 0)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rewrittenJavascript.append(javascript.substring(rewrittenIndex));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rewrittenUrl = rewrittenJavascript.toString();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// access assets directly externally from portal 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rewrittenUrl = webContentURL(url); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (log.isDebugEnabled())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;log.debug(&amp;quot;rewriteUrl: &amp;quot;+url+&amp;quot; -&amp;gt; &amp;quot;+rewrittenUrl);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return rewrittenUrl;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/* (non-Javadoc)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see org.apache.portals.applications.webcontent.rewriter.BasicRewriter#rewriteText(java.lang.String, java.lang.String)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public String rewriteText(String tag, String text)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String rewrittenText = null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (tag.equalsIgnoreCase(&amp;quot;STYLE&amp;quot;))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;StringBuilder rewrittenStyle = new StringBuilder();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int rewrittenIndex = 0;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Matcher matcher = STYLE_URL_PATTERN.matcher(text);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while (matcher.find())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rewrittenStyle.append(text.substring(rewrittenIndex,matcher.start(1)));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rewrittenStyle.append(webContentURL(matcher.group(1)));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rewrittenIndex = matcher.end(1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (rewrittenIndex &amp;gt; 0)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rewrittenStyle.append(text.substring(rewrittenIndex));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rewrittenText = rewrittenStyle.toString();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (rewrittenText != null)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (log.isDebugEnabled())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String logText = text.replace('\n', ' ').replace('\r', ' ');
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String logRewrittenText = rewrittenText.replace('\n', ' ').replace('\r', ' ');
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;log.debug(&amp;quot;rewriteText: &amp;quot;+logText+&amp;quot; -&amp;gt; &amp;quot;+logRewrittenText);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return rewrittenText;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected String webContentURL(String url)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// form absolute web content URL
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!url.startsWith(&amp;quot;http://&amp;quot;) &amp;&amp; !url.startsWith(&amp;quot;https://&amp;quot;))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (url.startsWith(&amp;quot;/&amp;quot;))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// get site root base url
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String baseRootUrl = baseRootURL(getBaseUrl());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// append site relative url to base url
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;url = baseRootUrl+url.substring(1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// strip &amp;quot;./&amp;quot; prefix from url
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while (url.startsWith(&amp;quot;./&amp;quot;))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;url = url.substring(2);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// get base url 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String baseUrl = baseURL(getBaseUrl(), false);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// strip &amp;quot;../&amp;quot; prefix from url
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while (url.startsWith(&amp;quot;../&amp;quot;))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;url = url.substring(3);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;baseUrl = baseURL(baseUrl, true);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// append relative url to base url
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;url = baseUrl+url;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return url;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected String portalURL(String url)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// derive content relative url if necessary
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (url.startsWith(&amp;quot;http://&amp;quot;) || url.startsWith(&amp;quot;https://&amp;quot;))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// get base url 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String baseUrl = baseURL(getBaseUrl(), false);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// strip base url to create relative url
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (url.startsWith(baseUrl))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return url.substring(baseUrl.length());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// compute relative url from base if possible
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String baseRootUrl = baseRootURL(getBaseUrl());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (url.startsWith(baseRootUrl))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;url = url.substring(baseRootUrl.length());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String remainingBasePath = baseUrl.substring(baseRootUrl.length());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int remainingBasePathIndex = remainingBasePath.indexOf('/');
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while (remainingBasePathIndex != -1)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;url = &amp;quot;../&amp;quot;+url;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;remainingBasePathIndex = remainingBasePath.indexOf('/', remainingBasePathIndex+1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (url.startsWith(&amp;quot;/&amp;quot;))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// get base url 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String baseUrl = baseURL(getBaseUrl(), false);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// compute relative url from root relative url
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String baseRootUrl = baseRootURL(getBaseUrl());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;url = url.substring(1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String remainingBasePath = baseUrl.substring(baseRootUrl.length());
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int remainingBasePathIndex = remainingBasePath.indexOf('/');
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while (remainingBasePathIndex != -1)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;url = &amp;quot;../&amp;quot;+url;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;remainingBasePathIndex = remainingBasePath.indexOf('/', remainingBasePathIndex+1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// strip &amp;quot;./&amp;quot; prefix from url
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while (url.startsWith(&amp;quot;./&amp;quot;))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;url = url.substring(2);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// make portal site relative url from content relative urls
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!url.startsWith(&amp;quot;http://&amp;quot;) &amp;&amp; !url.startsWith(&amp;quot;https://&amp;quot;))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String basePortalPath = getBasePortalPath();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!basePortalPath.endsWith(&amp;quot;/&amp;quot;))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;basePortalPath += &amp;quot;/&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;url = basePortalPath+url;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return url;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected static String baseURL(String baseUrl, boolean force)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean folderUrl = baseUrl.endsWith(&amp;quot;/&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!folderUrl || force)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int baseRootUrlIndex = baseUrl.indexOf('/');
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;baseRootUrlIndex = baseUrl.indexOf('/', baseRootUrlIndex+1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;baseRootUrlIndex = baseUrl.indexOf('/', baseRootUrlIndex+1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int baseUrlIndex = (folderUrl ? baseUrl.lastIndexOf('/', baseUrl.length()-2) : baseUrl.lastIndexOf('/'));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ((baseRootUrlIndex != -1) || (baseUrlIndex &amp;gt; baseUrlIndex))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;baseUrl = baseUrl.substring(0, baseUrlIndex+1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else if (!folderUrl)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;baseUrl += &amp;quot;/&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return baseUrl;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;protected static String baseRootURL(String baseUrl)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int baseRootUrlIndex = baseUrl.indexOf('/');
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;baseRootUrlIndex = baseUrl.indexOf('/', baseRootUrlIndex+1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;baseRootUrlIndex = baseUrl.indexOf('/', baseRootUrlIndex+1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return ((baseRootUrlIndex != -1) ? baseUrl : baseUrl.substring(0, baseRootUrlIndex))+&amp;quot;/&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+}
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml?rev=891415&amp;r1=891414&amp;r2=891415&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml?rev=891415&amp;r1=891414&amp;r2=891415&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml (original)
&lt;br&gt;+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml Wed Dec 16 20:22:15 2009
&lt;br&gt;@@ -2314,6 +2314,51 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/portlet-info&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;/portlet&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp;&amp;lt;portlet&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;Portal DynamicPage enabled content portlet that displays content of another website inside the portal without using frames. All links are rewritten back to the portal to attempt to proxy all content through the portal.&amp;lt;/description&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;portlet-name&amp;gt;DynamicWebContentPortlet&amp;lt;/portlet-name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;display-name&amp;gt;Portal DynamicPage WebContent Portlet&amp;lt;/display-name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;portlet-class&amp;gt;org.apache.jetspeed.portlets.content.DynamicWebContentPortlet&amp;lt;/portlet-class&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;init-param&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;EditPage&amp;lt;/name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;value&amp;gt;/WEB-INF/view/edit-prefs.vm&amp;lt;/value&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/init-param&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;init-param&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;portlet-icon&amp;lt;/name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;value&amp;gt;preferences-system-network-proxy.png&amp;lt;/value&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/init-param&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;expiration-cache&amp;gt;0&amp;lt;/expiration-cache&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;supports&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;mime-type&amp;gt;text/html&amp;lt;/mime-type&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;portlet-mode&amp;gt;EDIT&amp;lt;/portlet-mode&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;portlet-mode&amp;gt;VIEW&amp;lt;/portlet-mode&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/supports&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;supported-locale&amp;gt;en&amp;lt;/supported-locale&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;portlet-info&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;title&amp;gt;Portal DynamicPage WebContent Portlet&amp;lt;/title&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;short-title&amp;gt;DynamicWebContent&amp;lt;/short-title&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;keywords&amp;gt;web,content,webnav,bridge,proxy,rewrite,dpsml&amp;lt;/keywords&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/portlet-info&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;portlet-preferences&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;preference&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;SRC&amp;lt;/name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;value&amp;gt;&lt;a href=&quot;http://portals.apache.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://portals.apache.org/&lt;/a&gt;&amp;lt;/value&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/preference&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;preference&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;PORTALPATH&amp;lt;/name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;value&amp;gt;/content/&amp;lt;/value&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/preference&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;preference&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;PROXYHOST&amp;lt;/name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;value&amp;gt;&amp;lt;/value&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/preference&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;preference&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;PROXYPORT&amp;lt;/name&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;value&amp;gt;&amp;lt;/value&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/preference&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/portlet-preferences&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp;&amp;lt;/portlet&amp;gt;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;custom-portlet-mode&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;description&amp;gt;a Custom Config Mode&amp;lt;/description&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;portlet-mode&amp;gt;config&amp;lt;/portlet-mode&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817843&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817843&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Jetspeed---Dev-f199.html&quot; embed=&quot;fixTarget[199]&quot; target=&quot;_top&quot; &gt;Jetspeed - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r891415---in--portals-jetspeed-2-applications-j2-admin-trunk-src-main%3A-java-org-apache-jetspeed-portlets-content--webapp-WEB-INF--tp26817843p26817843.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26817485</id>
	<title>svn commit: r891409 - in /portals/jetspeed-2/applications/j2-admin/trunk/src/main: java/org/apache/jetspeed/portlets/toolbox/JetspeedToolbox.java webapp/WEB-INF/view/toolbox/toolbox.jsp</title>
	<published>2009-12-16T11:58:45Z</published>
	<updated>2009-12-16T11:58:45Z</updated>
	<author>
		<name>woonsan</name>
	</author>
	<content type="html">Author: woonsan
&lt;br&gt;Date: Wed Dec 16 19:58:44 2009
&lt;br&gt;New Revision: 891409
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=891409&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=891409&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;JS2-1057: Adding pagination
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/toolbox/JetspeedToolbox.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/toolbox/JetspeedToolbox.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/toolbox/JetspeedToolbox.java?rev=891409&amp;r1=891408&amp;r2=891409&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/toolbox/JetspeedToolbox.java?rev=891409&amp;r1=891408&amp;r2=891409&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/toolbox/JetspeedToolbox.java (original)
&lt;br&gt;+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/toolbox/JetspeedToolbox.java Wed Dec 16 19:58:44 2009
&lt;br&gt;@@ -18,7 +18,9 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import java.io.IOException;
&lt;br&gt;&amp;nbsp;import java.util.Arrays;
&lt;br&gt;+import java.util.HashMap;
&lt;br&gt;&amp;nbsp;import java.util.List;
&lt;br&gt;+import java.util.Map;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import javax.portlet.ActionRequest;
&lt;br&gt;&amp;nbsp;import javax.portlet.ActionResponse;
&lt;br&gt;@@ -26,6 +28,7 @@
&lt;br&gt;&amp;nbsp;import javax.portlet.PortletConfig;
&lt;br&gt;&amp;nbsp;import javax.portlet.PortletContext;
&lt;br&gt;&amp;nbsp;import javax.portlet.PortletException;
&lt;br&gt;+import javax.portlet.PortletPreferences;
&lt;br&gt;&amp;nbsp;import javax.portlet.PortletRequest;
&lt;br&gt;&amp;nbsp;import javax.portlet.RenderRequest;
&lt;br&gt;&amp;nbsp;import javax.portlet.RenderResponse;
&lt;br&gt;@@ -102,9 +105,15 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public void doView(RenderRequest request, RenderResponse response)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throws PortletException, IOException
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;request.setAttribute(&amp;quot;categories&amp;quot;, retrieveCategories(request));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;String&amp;gt; categories = retrieveCategories(request);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;request.setAttribute(&amp;quot;categories&amp;quot;, categories);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Map&amp;lt;String, String&amp;gt; categoryKeywordsMap = retrieveCategoryKeywordsMap(categories, request);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;request.setAttribute(&amp;quot;categoryKeywords&amp;quot;, categoryKeywordsMap);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;request.setAttribute(&amp;quot;layouts&amp;quot;, LayoutBean.retrieveLayouts(request, decorationFactory));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;request.setAttribute(&amp;quot;themes&amp;quot;, ThemeBean.retrieveThemes(request, decorationFactory));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PortletPreferences prefs = request.getPreferences();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;request.setAttribute(&amp;quot;prefs&amp;quot;, prefs.getMap());
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean hasEditAccess = false;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;@@ -186,4 +195,18 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return categories;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;public Map&amp;lt;String, String&amp;gt; retrieveCategoryKeywordsMap(List&amp;lt;String&amp;gt; categories, PortletRequest request) throws PortletException
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Map&amp;lt;String, String&amp;gt; keywordsMap = new HashMap&amp;lt;String, String&amp;gt;();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PortletPreferences prefs = request.getPreferences();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (String category : categories)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String keywords = prefs.getValue(&amp;quot;Keywords:&amp;quot; + category, &amp;quot;&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;keywordsMap.put(category, keywords);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return keywordsMap;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp?rev=891409&amp;r1=891408&amp;r2=891409&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp?rev=891409&amp;r1=891408&amp;r2=891409&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp (original)
&lt;br&gt;+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp Wed Dec 16 19:58:44 2009
&lt;br&gt;@@ -31,16 +31,17 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;&amp;lt;portlet:defineObjects/&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;c_rt:set var=&amp;quot;requestContext&amp;quot; value=&amp;quot;&amp;lt;%=request.getAttribute(RequestContext.REQUEST_PORTALENV)%&amp;gt;&amp;quot;/&amp;gt;
&lt;br&gt;-&amp;lt;c:set var=&amp;quot;portalContextPrefix&amp;quot; value=&amp;quot;${requestContext.request.contextPath}&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;c:set var=&amp;quot;portalContextPath&amp;quot; value=&amp;quot;${requestContext.request.contextPath}&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;c:set var=&amp;quot;portalPagePath&amp;quot; value=&amp;quot;${requestContext.portalURL.path}&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;c:if test=&amp;quot;${empty portalPagePath}&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;lt;c:set var=&amp;quot;portalPagePath&amp;quot; value=&amp;quot;/&amp;quot;/&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;/c:if&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+&amp;lt;c:set var=&amp;quot;portletPageSize&amp;quot; value=&amp;quot;${prefs['Rows'][0]}&amp;quot;/&amp;gt;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;&amp;lt;table style=&amp;quot;border-collapse: collapse; &amp;nbsp;width: 100%; margin-top: 0px; margin-bottom: 0px; float: left;&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;td class=&amp;quot;portlet-section-subheader&amp;quot; colspan='10'&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;td class=&amp;quot;portlet-section-subheader&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;a href=&amp;quot;#&amp;quot; id=&amp;quot;&amp;lt;portlet:namespace/&amp;gt;portletsTabAction&amp;quot;&amp;gt;Portlets&amp;lt;/a&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;a href=&amp;quot;#&amp;quot; id=&amp;quot;&amp;lt;portlet:namespace/&amp;gt;layoutTabAction&amp;quot;&amp;gt;Layout&amp;lt;/a&amp;gt;
&lt;br&gt;@@ -55,21 +56,21 @@
&lt;br&gt;&amp;nbsp;&amp;lt;form id=&amp;quot;&amp;lt;portlet:namespace/&amp;gt;form&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;table id=&amp;quot;&amp;lt;portlet:namespace/&amp;gt;portletsTab&amp;quot; style=&amp;quot;display: none; border-collapse: collapse; &amp;nbsp;width: 100%; margin-top: 0px; margin-bottom: 0px; float: left;&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;th class=&amp;quot;portlet-section-header&amp;quot; colspan=&amp;quot;10&amp;quot;&amp;gt;Portlets&amp;lt;/th&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;th class=&amp;quot;portlet-section-header&amp;quot;&amp;gt;Portlets&amp;lt;/th&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td class=&amp;quot;portlet-section-subheader&amp;quot; colspan='10'&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td class=&amp;quot;portlet-section-subheader&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;query&amp;quot; size=&amp;quot;15&amp;quot; value=&amp;quot;&amp;quot; &amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Search&amp;quot; /&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/td&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td class=&amp;quot;portlet-section-subheader&amp;quot; colspan='10'&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td class=&amp;quot;portlet-section-subheader&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;select id=&amp;quot;&amp;lt;portlet:namespace/&amp;gt;categories&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;option value=&amp;quot;&amp;quot;&amp;gt;Choose a category&amp;lt;/option&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;c:forEach var=&amp;quot;category&amp;quot; items=&amp;quot;${categories}&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;option value=&amp;quot;${category}&amp;quot;&amp;gt;${category}&amp;lt;/option&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;option value=&amp;quot;${category}&amp;quot; keywords=&amp;quot;${categoryKeywords[category]}&amp;quot;&amp;gt;${category}&amp;lt;/option&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/c:forEach&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/select&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/td&amp;gt;
&lt;br&gt;@@ -82,7 +83,22 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;th class=&amp;quot;portlet-section-header&amp;quot; colspan=&amp;quot;2&amp;quot;&amp;gt;&amp;lt;/th&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td class=&amp;quot;portlet-section-subheader&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;div id=&amp;quot;&amp;lt;portlet:namespace/&amp;gt;pageNavBar&amp;quot; class=&amp;quot;jstbPageNavBar&amp;quot;&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;jstbPageNav&amp;quot; pageIndex=&amp;quot;first&amp;quot;&amp;gt;&amp;lt;&amp;lt;&amp;lt;/a&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;jstbPageNav&amp;quot; pageIndex=&amp;quot;prev&amp;quot;&amp;gt;&amp;lt;&amp;lt;/a&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;select id=&amp;quot;&amp;lt;portlet:namespace/&amp;gt;pageNavIndex&amp;quot;&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;option value=&amp;quot;&amp;quot;&amp;gt;Page&amp;lt;/option&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/select&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/select&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;jstbPageNav&amp;quot; pageIndex=&amp;quot;next&amp;quot;&amp;gt;&amp;gt;&amp;lt;/a&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;jstbPageNav&amp;quot; pageIndex=&amp;quot;last&amp;quot;&amp;gt;&amp;gt;&amp;gt;&amp;lt;/a&amp;gt;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/div&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/td&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;th class=&amp;quot;portlet-section-header&amp;quot;&amp;gt;&amp;lt;/th&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;/table&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;lt;/form&amp;gt;
&lt;br&gt;@@ -170,7 +186,57 @@
&lt;br&gt;&amp;nbsp;&amp;lt;/table&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;
&lt;br&gt;-YUI().use('io', 'json', 'node-base', 'cookie', 'jetui-portal', function(Y) {
&lt;br&gt;+YUI().use('jetui-portal', 'io', 'json', 'node-base', 'cookie', function(Y) {
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;var pagination = {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;portlet : { uri : null, totalSize : 0, pageSize : ${portletPageSize}, beginIndex : 0 },
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getPageBeginIndex : function(info, scrollTo) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (isNaN(scrollTo)) {
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (&amp;quot;first&amp;quot; == scrollTo) {
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return 0;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else if (&amp;quot;prev&amp;quot; == scrollTo) {
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return Math.max(info.beginIndex - info.pageSize, 0);
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else if (&amp;quot;next&amp;quot; == scrollTo) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var lastPageBeginIndex = 0;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (info.totalSize &amp;gt; 0) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lastPageBeginIndex = parseInt((info.totalSize - 1) / info.pageSize) * info.pageSize;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return Math.min(info.beginIndex + info.pageSize, lastPageBeginIndex);
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else if (&amp;quot;last&amp;quot; == scrollTo) {
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var lastPageBeginIndex = 0;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (info.totalSize &amp;gt; 0) {
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lastPageBeginIndex = parseInt((info.totalSize - 1) / info.pageSize) * info.pageSize;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return lastPageBeginIndex;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return -1;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var lastPageBeginIndex = 0;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (info.totalSize &amp;gt; 0) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lastPageBeginIndex = parseInt((info.totalSize - 1) / info.pageSize) * info.pageSize;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return Math.min((parseInt(scrollTo) - 1) * info.pageSize, lastPageBeginIndex);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;},
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getPageCount : function(info) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var count = parseInt(info.totalSize / info.pageSize);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (info.totalSize % info.pageSize != 0) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;++count;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return count;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;},
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;getCurrentPageIndex : function(info) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (info.totalSize &amp;gt; 0) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return parseInt(info.beginIndex / info.pageSize) + 1;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return 0;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;};
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;function switchTab(e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var tabId = null;
&lt;br&gt;@@ -222,6 +288,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pagination.portlet.totalSize = dataOut.totalSize;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pagination.portlet.beginIndex = Math.max(dataOut.beginIndex, 0);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var portletsPanel = Y.Node.one(&amp;quot;#&amp;lt;portlet:namespace/&amp;gt;portletItemsPanel&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var clonedPortletsPanel = portletsPanel.cloneNode(false);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;portletsPanel.get(&amp;quot;parentNode&amp;quot;).replaceChild(clonedPortletsPanel, portletsPanel);
&lt;br&gt;@@ -236,9 +305,9 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;clone.setStyle('display', '');
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var imgNode = clone.one('img');
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (def.portletIcon) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;imgNode.set(&amp;quot;src&amp;quot;, &amp;quot;${portalContextPrefix}/images/portlets/&amp;quot; + def.portletIcon);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;imgNode.set(&amp;quot;src&amp;quot;, &amp;quot;${portalContextPath}/images/portlets/&amp;quot; + def.portletIcon);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;imgNode.set(&amp;quot;src&amp;quot;, &amp;quot;${portalContextPefix}/images/portlets/applications-other.png&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;imgNode.set(&amp;quot;src&amp;quot;, &amp;quot;${portalContextPath}/images/portlets/applications-other.png&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var nameNode = clone.one('div');
&lt;br&gt;@@ -260,6 +329,20 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;portletsPanel.appendChild(clone);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var navSel = Y.one(&amp;quot;#&amp;lt;portlet:namespace/&amp;gt;pageNavIndex&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var options = navSel.getElementsByTagName(&amp;quot;OPTION&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (var i = options.size() - 1; i &amp;gt; 0; i--) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;navSel.removeChild(options.item(i));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var pageCount = pagination.getPageCount(pagination.portlet);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (var i = 1; i &amp;lt;= pageCount; i++) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var option = Y.Node.create(&amp;quot;&amp;lt;option value='&amp;quot; + i + &amp;quot;'&amp;gt;&amp;quot; + (i &amp;lt; 10 ? &amp;quot; &amp;quot; + i : i) + &amp;quot;&amp;lt;/option&amp;gt;&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;navSel.appendChild(option);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var curPageIndex = pagination.getCurrentPageIndex(pagination.portlet);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var pageIndices = Y.Node.getDOMNode(navSel);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageIndices.options[curPageIndex].selected = true;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;};
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;var loadPortletsInCategory = function(e) {
&lt;br&gt;@@ -272,8 +355,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Y.Cookie.set(&amp;quot;toolboxcat&amp;quot;, category);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var uri = &amp;quot;${portalContextPrefix}/services/portletregistry/definition/?_type=json&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var uri = &amp;quot;${portalContextPath}/services/portletregistry/definition/?_type=json&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;uri += &amp;quot;&amp;max=&amp;quot; + pagination.portlet.pageSize + &amp;quot;&amp;begin=0&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;uri += &amp;quot;&amp;query=&amp;quot; + category;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pagination.portlet.uri = uri;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var request = Y.io(uri, { on: { complete: onLoadPortletComplete } });
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Y.Node.getDOMNode(Y.Node.one(&amp;quot;#&amp;lt;portlet:namespace/&amp;gt;form&amp;quot;)).query.value = &amp;quot;&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -281,14 +366,43 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;var loadPortletsByQuery = function(e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var form = Y.Node.getDOMNode(e.target);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var query = form.query.value;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var uri = &amp;quot;${portalContextPrefix}/services/portletregistry/definition/?_type=json&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var uri = &amp;quot;${portalContextPath}/services/portletregistry/definition/?_type=json&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;uri += &amp;quot;&amp;max=&amp;quot; + pagination.portlet.pageSize + &amp;quot;&amp;begin=0&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (query) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;uri += &amp;quot;&amp;query=&amp;quot; + query;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pagination.portlet.uri = uri;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var request = Y.io(uri, { on: { complete: onLoadPortletComplete } });
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Y.Node.getDOMNode(Y.Node.one(&amp;quot;#&amp;lt;portlet:namespace/&amp;gt;categories&amp;quot;)).selectedIndex = 0;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e.halt();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;};
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;var onPortletPaginationLinkClick = function(e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var navElem = e.target;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var beginIndex = pagination.getPageBeginIndex(pagination.portlet, navElem.getAttribute(&amp;quot;pageIndex&amp;quot;));
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (beginIndex != -1 &amp;&amp; beginIndex != pagination.portlet.beginIndex) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var uri = pagination.portlet.uri.replace(/&amp;begin=\d+/, &amp;quot;&amp;begin=&amp;quot; + beginIndex);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var request = Y.io(uri, { on: { complete: onLoadPortletComplete } });
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e.halt();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;};
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;var onPortletPaginationSelectChange = function(e) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var pageIndices = Y.Node.getDOMNode(e.target);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var pageIndex = pageIndices.options[pageIndices.selectedIndex].value;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (pageIndex) {
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var beginIndex = pagination.getPageBeginIndex(pagination.portlet, pageIndex);
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (beginIndex != -1 &amp;&amp; beginIndex != pagination.portlet.beginIndex) {
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var uri = pagination.portlet.uri.replace(/&amp;begin=\d+/, &amp;quot;&amp;begin=&amp;quot; + beginIndex);
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var request = Y.io(uri, { on: { complete: onLoadPortletComplete } });
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var curPageIndex = pagination.getCurrentPageIndex(pagination.portlet);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageIndices.options[curPageIndex].selected = true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e.halt();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;};
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -308,7 +422,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var portal = JETUI_YUI.getPortalInstance();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var portal = (JETUI_YUI ? JETUI_YUI.getPortalInstance() : null);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (portal) {
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;portal.addPortlet(dataOut);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;@@ -321,7 +435,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var portletUniqueName = a.getAttribute(&amp;quot;portletUniqueName&amp;quot;);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (portletUniqueName) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var uri = &amp;quot;${portalContextPrefix}/services/pagelayout/fragment/portlet/&amp;quot; + portletUniqueName + &amp;quot;/?_type=json&amp;quot;;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var uri = &amp;quot;${portalContextPath}/services/pagelayout/fragment/portlet/&amp;quot; + portletUniqueName + &amp;quot;/?_type=json&amp;quot;;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var config = {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;on: { complete: onAddPortletComplete },
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;method: &amp;quot;POST&amp;quot;,
&lt;br&gt;@@ -341,6 +455,13 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Y.on(&amp;quot;change&amp;quot;, loadPortletsInCategory, &amp;quot;#&amp;lt;portlet:namespace/&amp;gt;categories&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Y.on(&amp;quot;submit&amp;quot;, loadPortletsByQuery, &amp;quot;#&amp;lt;portlet:namespace/&amp;gt;form&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;var pageNavBar = Y.one(&amp;quot;#&amp;lt;portlet:namespace/&amp;gt;pageNavBar&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;var navLinks = pageNavBar.all(&amp;quot;.jstbPageNav&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;navLinks.each(function(v, k) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;v.on(&amp;quot;click&amp;quot;, onPortletPaginationLinkClick);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;});
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Y.one(&amp;quot;#&amp;lt;portlet:namespace/&amp;gt;pageNavIndex&amp;quot;).on(&amp;quot;change&amp;quot;, onPortletPaginationSelectChange);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;var tabId = Y.Cookie.get(&amp;quot;toolboxtab&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if (!tabId) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tabId = &amp;quot;portlets&amp;quot;;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817485&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817485&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Jetspeed---Dev-f199.html&quot; embed=&quot;fixTarget[199]&quot; target=&quot;_top&quot; &gt;Jetspeed - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r891409---in--portals-jetspeed-2-applications-j2-admin-trunk-src-main%3A-java-org-apache-jetspeed-portlets-toolbox-JetspeedToolbox.java-webapp-WEB-INF-view-toolbox-toolbox.jsp-tp26817485p26817485.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26817078</id>
	<title>Re: Building js2 with tests?</title>
	<published>2009-12-16T11:32:20Z</published>
	<updated>2009-12-16T11:32:20Z</updated>
	<author>
		<name>Randy Watler</name>
	</author>
	<content type="html">David,
&lt;br&gt;&lt;br&gt;Here is the sequence I use:
&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;gt; mvn clean install
&lt;br&gt;&amp;nbsp;&amp;gt; mvn jetspeed:mvn -Dtarget=testdb
&lt;br&gt;&amp;nbsp;&amp;gt; mvn -P test test
&lt;br&gt;&lt;br&gt;There is also a target to combine the last two steps in the jetspeed 
&lt;br&gt;plugin, but I don't use that, (due to general pluginphobia).
&lt;br&gt;&lt;br&gt;HTH,
&lt;br&gt;&lt;br&gt;Randy
&lt;br&gt;&lt;br&gt;David Jencks wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; I'm trying to figure out just how much the pluto DI changes I'm 
&lt;br&gt;&amp;gt; working on will break js2... so far
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; mvn clean install
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; seems to work, much to my surprise, but if I enable tests I get stuck 
&lt;br&gt;&amp;gt; on some db tests. &amp;nbsp;I looked around briefly but didn't find any 
&lt;br&gt;&amp;gt; instructions.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; What's the secret?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; So far I've added this to the root pom properties:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;gt; &amp;lt;org.apache.jetspeed.test.database.driver&amp;gt;org.apache.derby.jdbc.EmbeddedDriver&amp;lt;/org.apache.jetspeed.test.database.driver&amp;gt; 
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;gt; &amp;lt;org.apache.jetspeed.test.database.url&amp;gt;jdbc:derby:${pom.basedir}/target/testdb;create=true&amp;lt;/org.apache.jetspeed.test.database.url&amp;gt; 
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;gt; &amp;lt;org.apache.jetspeed.test.database.user&amp;gt;&amp;lt;/org.apache.jetspeed.test.database.user&amp;gt; 
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;gt; &amp;lt;org.apache.jetspeed.test.database.password&amp;gt;&amp;lt;/org.apache.jetspeed.test.database.password&amp;gt; 
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; and get errors like this:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ...
&lt;br&gt;&amp;gt; Caused by: ERROR 42X05: Table/View 'CAPABILITY' does not exist.
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at 
&lt;br&gt;&amp;gt; org.apache.derby.iapi.error.StandardException.newException(Unknown 
&lt;br&gt;&amp;gt; Source)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at 
&lt;br&gt;&amp;gt; org.apache.derby.impl.sql.compile.FromBaseTable.bindTableDescriptor(Unknown 
&lt;br&gt;&amp;gt; Source)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at 
&lt;br&gt;&amp;gt; org.apache.derby.impl.sql.compile.FromBaseTable.bindNonVTITables(Unknown 
&lt;br&gt;&amp;gt; Source)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at 
&lt;br&gt;&amp;gt; org.apache.derby.impl.sql.compile.FromList.bindTables(Unknown Source)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at 
&lt;br&gt;&amp;gt; org.apache.derby.impl.sql.compile.SelectNode.bindNonVTITables(Unknown 
&lt;br&gt;&amp;gt; Source)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at 
&lt;br&gt;&amp;gt; org.apache.derby.impl.sql.compile.DMLStatementNode.bindTables(Unknown 
&lt;br&gt;&amp;gt; Source)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at 
&lt;br&gt;&amp;gt; org.apache.derby.impl.sql.compile.DMLStatementNode.bind(Unknown Source)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at 
&lt;br&gt;&amp;gt; org.apache.derby.impl.sql.compile.CursorNode.bindStatement(Unknown 
&lt;br&gt;&amp;gt; Source)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at 
&lt;br&gt;&amp;gt; org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown 
&lt;br&gt;&amp;gt; Source)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at 
&lt;br&gt;&amp;gt; org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown 
&lt;br&gt;&amp;gt; Source)
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ... 98 more
&lt;br&gt;&amp;gt; Tests run: 8, Failures: 0, Errors: 8, Skipped: 0, Time elapsed: 8.81 
&lt;br&gt;&amp;gt; sec &amp;lt;&amp;lt;&amp;lt; FAILURE!
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Results :
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Tests in error:
&lt;br&gt;&amp;gt; &amp;nbsp; firstTestSetup(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;gt; &amp;nbsp; testCapability(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;gt; &amp;nbsp; testNewMimeType(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;gt; &amp;nbsp; testNewCapability(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;gt; &amp;nbsp; testNewMediaType(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;gt; &amp;nbsp; testNewClient(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;gt; &amp;nbsp; testCapabilityRepeat(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;gt; &amp;nbsp; lastTestTeardown(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Tests run: 8, Failures: 0, Errors: 8, Skipped: 0
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; thanks
&lt;br&gt;&amp;gt; david jencks
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817078&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817078&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817078&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26817078&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Jetspeed---Dev-f199.html&quot; embed=&quot;fixTarget[199]&quot; target=&quot;_top&quot; &gt;Jetspeed - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Building-js2-with-tests--tp26816935p26817078.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26816935</id>
	<title>Building js2 with tests?</title>
	<published>2009-12-16T11:24:32Z</published>
	<updated>2009-12-16T11:24:32Z</updated>
	<author>
		<name>djencks</name>
	</author>
	<content type="html">I'm trying to figure out just how much the pluto DI changes I'm &amp;nbsp;
&lt;br&gt;working on will break js2... so far
&lt;br&gt;&lt;br&gt;mvn clean install
&lt;br&gt;&lt;br&gt;seems to work, much to my surprise, but if I enable tests I get stuck &amp;nbsp;
&lt;br&gt;on some db tests. &amp;nbsp;I looked around briefly but didn't find any &amp;nbsp;
&lt;br&gt;instructions.
&lt;br&gt;&lt;br&gt;What's the secret?
&lt;br&gt;&lt;br&gt;So far I've added this to the root pom properties:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&lt;br&gt;&amp;lt; 
&lt;br&gt;org 
&lt;br&gt;.apache 
&lt;br&gt;.jetspeed.test.database.driver&amp;gt;org.apache.derby.jdbc.EmbeddedDriver&amp;lt;/ 
&lt;br&gt;org.apache.jetspeed.test.database.driver&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;org.apache.jetspeed.test.database.url&amp;gt;jdbc:derby:${pom.basedir}/ 
&lt;br&gt;target/testdb;create=true&amp;lt;/org.apache.jetspeed.test.database.url&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;org.apache.jetspeed.test.database.user&amp;gt;&amp;lt;/ 
&lt;br&gt;org.apache.jetspeed.test.database.user&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;org.apache.jetspeed.test.database.password&amp;gt;&amp;lt;/ 
&lt;br&gt;org.apache.jetspeed.test.database.password&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;and get errors like this:
&lt;br&gt;&lt;br&gt;...
&lt;br&gt;Caused by: ERROR 42X05: Table/View 'CAPABILITY' does not exist.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at &amp;nbsp;
&lt;br&gt;org.apache.derby.iapi.error.StandardException.newException(Unknown &amp;nbsp;
&lt;br&gt;Source)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at &amp;nbsp;
&lt;br&gt;org 
&lt;br&gt;.apache 
&lt;br&gt;.derby.impl.sql.compile.FromBaseTable.bindTableDescriptor(Unknown &amp;nbsp;
&lt;br&gt;Source)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at &amp;nbsp;
&lt;br&gt;org 
&lt;br&gt;.apache.derby.impl.sql.compile.FromBaseTable.bindNonVTITables(Unknown &amp;nbsp;
&lt;br&gt;Source)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at &amp;nbsp;
&lt;br&gt;org.apache.derby.impl.sql.compile.FromList.bindTables(Unknown Source)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at &amp;nbsp;
&lt;br&gt;org.apache.derby.impl.sql.compile.SelectNode.bindNonVTITables(Unknown &amp;nbsp;
&lt;br&gt;Source)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at &amp;nbsp;
&lt;br&gt;org.apache.derby.impl.sql.compile.DMLStatementNode.bindTables(Unknown &amp;nbsp;
&lt;br&gt;Source)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at &amp;nbsp;
&lt;br&gt;org.apache.derby.impl.sql.compile.DMLStatementNode.bind(Unknown Source)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at &amp;nbsp;
&lt;br&gt;org.apache.derby.impl.sql.compile.CursorNode.bindStatement(Unknown &amp;nbsp;
&lt;br&gt;Source)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at &amp;nbsp;
&lt;br&gt;org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown &amp;nbsp;
&lt;br&gt;Source)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at &amp;nbsp;
&lt;br&gt;org 
&lt;br&gt;.apache 
&lt;br&gt;.derby 
&lt;br&gt;.impl 
&lt;br&gt;.sql 
&lt;br&gt;.conn 
&lt;br&gt;.GenericLanguageConnectionContext.prepareInternalStatement(Unknown &amp;nbsp;
&lt;br&gt;Source)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;... 98 more
&lt;br&gt;Tests run: 8, Failures: 0, Errors: 8, Skipped: 0, Time elapsed: 8.81 &amp;nbsp;
&lt;br&gt;sec &amp;lt;&amp;lt;&amp;lt; FAILURE!
&lt;br&gt;&lt;br&gt;Results :
&lt;br&gt;&lt;br&gt;Tests in error:
&lt;br&gt;&amp;nbsp; &amp;nbsp;firstTestSetup(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;nbsp; &amp;nbsp;testCapability(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;nbsp; &amp;nbsp;testNewMimeType(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;nbsp; &amp;nbsp;testNewCapability(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;nbsp; &amp;nbsp;testNewMediaType(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;nbsp; &amp;nbsp;testNewClient(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;nbsp; &amp;nbsp;testCapabilityRepeat(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&amp;nbsp; &amp;nbsp;lastTestTeardown(org.apache.jetspeed.capabilities.TestCapability)
&lt;br&gt;&lt;br&gt;Tests run: 8, Failures: 0, Errors: 8, Skipped: 0
&lt;br&gt;&lt;br&gt;thanks
&lt;br&gt;david jencks
&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816935&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26816935&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Jetspeed---Dev-f199.html&quot; embed=&quot;fixTarget[199]&quot; target=&quot;_top&quot; &gt;Jetspeed - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Building-js2-with-tests--tp26816935p26816935.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26813554</id>
	<title>svn commit: r891283 - in /portals/jetspeed-2/applications/j2-admin/trunk/src/main: java/org/apache/jetspeed/portlets/toolbox/JetspeedToolbox.java webapp/WEB-INF/view/toolbox/toolbox.jsp</title>
	<published>2009-12-16T08:00:46Z</published>
	<updated>2009-12-16T08:00:46Z</updated>
	<author>
		<name>woonsan</name>
	</author>
	<content type="html">Author: woonsan
&lt;br&gt;Date: Wed Dec 16 16:00:46 2009
&lt;br&gt;New Revision: 891283
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=891283&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=891283&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;JS2-1057: Removing unused codes and changes on accessing the portal singleton instance.
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/toolbox/JetspeedToolbox.java
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/toolbox/JetspeedToolbox.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/toolbox/JetspeedToolbox.java?rev=891283&amp;r1=891282&amp;r2=891283&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/toolbox/JetspeedToolbox.java?rev=891283&amp;r1=891282&amp;r2=891283&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/toolbox/JetspeedToolbox.java (original)
&lt;br&gt;+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/toolbox/JetspeedToolbox.java Wed Dec 16 16:00:46 2009
&lt;br&gt;@@ -31,14 +31,12 @@
&lt;br&gt;&amp;nbsp;import javax.portlet.RenderResponse;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import org.apache.commons.lang.StringUtils;
&lt;br&gt;-import org.apache.commons.lang.math.NumberUtils;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.CommonPortletServices;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.JetspeedActions;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.decoration.DecorationFactory;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.layout.PageLayoutComponent;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.ContentFragment;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.om.page.ContentPage;
&lt;br&gt;-import org.apache.jetspeed.om.page.Fragment;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.portlet.HeaderPhaseSupportConstants;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.request.RequestContext;
&lt;br&gt;&amp;nbsp;import org.apache.portals.bridges.common.GenericServletPortlet;
&lt;br&gt;@@ -187,77 +185,5 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return categories;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- 
&lt;br&gt;- &amp;nbsp; &amp;nbsp;protected ContentFragment findFirstUnlockedFragment(ContentFragment fragment)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (fragment.isLocked())
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;ContentFragment&amp;gt; fragments = (List&amp;lt;ContentFragment&amp;gt;) fragment.getFragments();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (ContentFragment f : fragments)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (f.getType().equals(Fragment.LAYOUT))
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fragment = findFirstUnlockedFragment(f);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (fragment != null)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return fragment;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return fragment;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;// BOZO: this only works with flat collections of 1,2,3,4 column layouts. Not meant to work with nested layouts
&lt;br&gt;- &amp;nbsp; &amp;nbsp;// TODO: move code to an AJAX API
&lt;br&gt;- &amp;nbsp; &amp;nbsp;protected void addPortletToLeastUsedColumn(ContentPage page, String portletName)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ContentFragment layoutFragment = findFirstUnlockedFragment(page.getRootFragment());
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (layoutFragment != null)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String layoutType = layoutFragment.getName();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;ContentFragment&amp;gt; fragments = (List&amp;lt;ContentFragment&amp;gt;)layoutFragment.getFragments();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int columnCounts[] = new int[getLayoutSize(layoutType)];
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (ContentFragment fragment : fragments)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int column = fragment.getLayoutColumn();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int row = fragment.getLayoutRow();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (column == -1)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;column = NumberUtils.min(columnCounts);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (row == -1)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;row = columnCounts[column]; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (column &amp;gt; fragments.size() -1)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fragment.updateRowColumn(-1, 0);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;column = 0;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;columnCounts[column]++;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int placedColumn = 0;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int ix = 1; ix &amp;lt; columnCounts.length; ix++)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (columnCounts[ix] &amp;lt; columnCounts[placedColumn])
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;placedColumn = ix;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;layoutFragment.addPortlet(ContentFragment.PORTLET, portletName, columnCounts[placedColumn], placedColumn);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;public static int getLayoutSize(String layoutType)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (layoutType.indexOf(&amp;quot;TwoColumns&amp;quot;) &amp;gt; -1)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return 2;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (layoutType.indexOf(&amp;quot;ThreeColumns&amp;quot;) &amp;gt; -1)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return 3;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (layoutType.indexOf(&amp;quot;FourColumns&amp;quot;) &amp;gt; -1)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return 4;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return 1;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp?rev=891283&amp;r1=891282&amp;r2=891283&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp?rev=891283&amp;r1=891282&amp;r2=891283&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp (original)
&lt;br&gt;+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp Wed Dec 16 16:00:46 2009
&lt;br&gt;@@ -171,7 +171,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;
&lt;br&gt;&amp;nbsp;YUI().use('io', 'json', 'node-base', 'cookie', 'jetui-portal', function(Y) {
&lt;br&gt;-
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;function switchTab(e) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var tabId = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if ('string' == typeof(e)) {
&lt;br&gt;@@ -308,8 +308,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (JETUI_YUI &amp;&amp; JETUI_YUI.portalInstance) {
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var portal = JETUI_YUI.portalInstance;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var portal = JETUI_YUI.getPortalInstance();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (portal) {
&lt;br&gt;&amp;nbsp;	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;portal.addPortlet(dataOut);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} else {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;location.href = location.href;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26813554&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26813554&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Jetspeed---Dev-f199.html&quot; embed=&quot;fixTarget[199]&quot; target=&quot;_top&quot; &gt;Jetspeed - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r891283---in--portals-jetspeed-2-applications-j2-admin-trunk-src-main%3A-java-org-apache-jetspeed-portlets-toolbox-JetspeedToolbox.java-webapp-WEB-INF-view-toolbox-toolbox.jsp-tp26813554p26813554.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26813518</id>
	<title>svn commit: r891280 - in /portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp: javascript/jetspeed/jetui/jetui-portal.js jetui/engine/portal.js</title>
	<published>2009-12-16T07:58:54Z</published>
	<updated>2009-12-16T07:58:54Z</updated>
	<author>
		<name>woonsan</name>
	</author>
	<content type="html">Author: woonsan
&lt;br&gt;Date: Wed Dec 16 15:58:53 2009
&lt;br&gt;New Revision: 891280
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=891280&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=891280&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;JS2-1084: Adding singleton access method for portal instance.
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js?rev=891280&amp;r1=891279&amp;r2=891280&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js?rev=891280&amp;r1=891279&amp;r2=891280&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js Wed Dec 16 15:58:53 2009
&lt;br&gt;@@ -27,6 +27,22 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Y.namespace(&amp;quot;JetUI&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;// JETUI_YUI must be defined outside. However, just check again not to throw exceptions.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (!JETUI_YUI) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JETUI_YUI = {};
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Global method definition to returns the portal singleton instance
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @method
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;JETUI_YUI.getPortalInstance = function() {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!JETUI_YUI._portalInstance) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JETUI_YUI._portalInstance = new Y.JetUI.Portal(JETUI_YUI.config);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return JETUI_YUI._portalInstance;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;};
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Create a portal to represent a portal screen.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;@@ -127,9 +143,11 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @protected
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;initializer : function(cfg) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.portalContextPath = cfg.portalContextPath;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.portalServletPath = cfg.portalServletPath;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.portalPagePath = cfg.portalPagePath;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (cfg) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.portalContextPath = cfg.portalContextPath;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.portalServletPath = cfg.portalServletPath;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.portalPagePath = cfg.portalPagePath;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;},
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;@@ -193,10 +211,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @method movePortlet
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movePortlet : function(e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!JETUI_YUI || !JETUI_YUI.portalInstance)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var portal = JETUI_YUI.portalInstance;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var portal = JETUI_YUI.getPortalInstance();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var drop = e.drop.get('node'),
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;drag = e.drag.get('node');
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var dragParent = drag.get('parentNode');
&lt;br&gt;@@ -263,9 +278,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @method removePortlet
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;removePortlet : function(e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!JETUI_YUI || !JETUI_YUI.portalInstance)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var portal = JETUI_YUI.portalInstance;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var portal = JETUI_YUI.getPortalInstance();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var windowId = null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (e instanceof String) {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;windowId = e;
&lt;br&gt;@@ -287,9 +300,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @method createDecoratorActionNode
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;createDecoratorActionNode : function(decoAction) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!JETUI_YUI || !JETUI_YUI.portalInstance)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var portal = JETUI_YUI.portalInstance;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var portal = JETUI_YUI.getPortalInstance();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var node = Y.Node.create(&amp;quot;&amp;lt;a class='action portlet-action'/&amp;gt;&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var icon = Y.Node.create(&amp;quot;&amp;lt;img border='0'/&amp;gt;&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;node.setAttribute(&amp;quot;href&amp;quot;, decoAction.action);
&lt;br&gt;@@ -307,9 +318,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @method onPortletDecorationReadComplete
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;onPortletDecorationReadComplete : function(id, o, args) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!JETUI_YUI || !JETUI_YUI.portalInstance)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var portal = JETUI_YUI.portalInstance;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var portal = JETUI_YUI.getPortalInstance();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var windowId = args.complete[0];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var actionBarElem = args.complete[1];
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var existingActionElem = null;
&lt;br&gt;@@ -345,9 +354,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @method onPortletRenderComplete
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;onPortletRenderComplete : function(id, o, args) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!JETUI_YUI || !JETUI_YUI.portalInstance)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var portal = JETUI_YUI.portalInstance;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var portal = JETUI_YUI.getPortalInstance();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var id = id;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var v = args.complete;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var windowId = v.get(&amp;quot;id&amp;quot;);
&lt;br&gt;@@ -395,10 +402,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @method addPortlet
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;addPortlet : function(fragment) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!JETUI_YUI || !JETUI_YUI.portalInstance)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var portal = JETUI_YUI.portalInstance;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var portal = JETUI_YUI.getPortalInstance();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var templatePanel = Y.Node.one(&amp;quot;#jsPortletTemplate&amp;quot;);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var v = templatePanel.cloneNode(true);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;v.setStyle('display', '');
&lt;br&gt;@@ -440,13 +444,6 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;});
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;- &amp;nbsp; &amp;nbsp; * The portal singleton instance
&lt;br&gt;- &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (JETUI_YUI &amp;&amp; !JETUI_YUI.portalInstance) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JETUI_YUI.portalInstance = new Y.JetUI.Portal(JETUI_YUI.config);
&lt;br&gt;- &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Create a portlet window to represent a portal window.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @class JetUI.Portlet
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js?rev=891280&amp;r1=891279&amp;r2=891280&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js?rev=891280&amp;r1=891279&amp;r2=891280&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js Wed Dec 16 15:58:53 2009
&lt;br&gt;@@ -4,7 +4,7 @@
&lt;br&gt;&amp;nbsp;	var config = JETUI_YUI.config;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Y.log(&amp;quot;Starting up JETUI &amp;quot; + &amp;nbsp;config.engine + &amp;quot; engine...&amp;quot;);
&lt;br&gt;&amp;nbsp;	
&lt;br&gt;- &amp;nbsp; &amp;nbsp;var portal = JETUI_YUI.portalInstance;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;var portal = JETUI_YUI.getPortalInstance();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;//////////////////////////////////////////////////// &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// Create Navigator Portlet
&lt;br&gt;@@ -176,7 +176,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;});
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp;	Y.DD.DDM.on('drag:drophit', function(e) {
&lt;br&gt;-	 &amp;nbsp; &amp;nbsp;var portal = JETUI_YUI.portalInstance;
&lt;br&gt;+	 &amp;nbsp; &amp;nbsp;var portal = JETUI_YUI.getPortalInstance();
&lt;br&gt;&amp;nbsp;		var drop = e.drop.get('node'),
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;drag = e.drag.get('node');
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (drag.data.get(&amp;quot;toolbar&amp;quot;))
&lt;br&gt;@@ -312,7 +312,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;});
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Y.DD.DDM.on('drag:over', function(e) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var portal = JETUI_YUI.portalInstance;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var portal = JETUI_YUI.getPortalInstance();
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;	if (portal.isMoving)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;		return;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;	
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26813518&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26813518&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Jetspeed---Dev-f199.html&quot; embed=&quot;fixTarget[199]&quot; target=&quot;_top&quot; &gt;Jetspeed - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r891280---in--portals-jetspeed-2-portal-trunk-applications-jetspeed-src-main-webapp%3A-javascript-jetspeed-jetui-jetui-portal.js-jetui-engine-portal.js-tp26813518p26813518.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26813308</id>
	<title>[jira] Commented: (JS2-749) Jetspeed Login Module fails to load on Windows in directories with spaces in the path</title>
	<published>2009-12-16T07:47:18Z</published>
	<updated>2009-12-16T07:47:18Z</updated>
	<author>
		<name>Jetspeed - Dev mailing list</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/JS2-749?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12791413#action_12791413&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JS2-749?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12791413#action_12791413&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Frank Otto commented on JS2-749:
&lt;br&gt;--------------------------------
&lt;br&gt;&lt;br&gt;I have the same problem with jetspeed 2.2.0.
&lt;br&gt;&lt;br&gt;My tomcat folder is: C:\Programme\Tomcat Server\ and I get following error on jetspeed:
&lt;br&gt;&lt;br&gt;java.lang.SecurityException: C:\Programme\Tomcat%20Server\work\Catalina\localhost\jetspeed\loader\login.conf (Das System kann den angegebenen Pfad nicht finden)
&lt;br&gt;&lt;br&gt;I solved this by writing my own AuthenticationProvider with a workaround for jetspeeds BaseAuthenticationProvider:
&lt;br&gt;&lt;br&gt;File file = new File(loginConfigUrl.toURI());
&lt;br&gt;...
&lt;br&gt;System.setProperty(&amp;quot;java.security.auth.login.config&amp;quot;, file.getAbsolutePath());
&lt;br&gt;&lt;br&gt;Hope this helps...
&lt;br&gt;&lt;br&gt;&lt;br&gt;kind regards,
&lt;br&gt;&lt;br&gt;F.O.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Jetspeed Login Module fails to load on Windows in directories with spaces in the path
&lt;br&gt;&amp;gt; -------------------------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: JS2-749
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JS2-749&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JS2-749&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Jetspeed 2
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: Security
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 2.2.0
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Environment: Windows
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: David Sean Taylor
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Vivek Kumar
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Priority: Minor
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 2.2.0
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Jetspeed Login Module fails to load on Windows in directories with spaces in the path
&lt;br&gt;&amp;gt; It appears that we are breaking the Login Module on Windows when there are spaces in the path to the login module configuration file that Jetspeed provides, and is put into the work area of the application server. The problem is the Java class loader encodes the space, but then the file system does not understand the encoding (%20). If we do not encode the space, the file system correctly finds the resource. This change should be tested on all major file systems before committing.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26813308&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26813308&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Jetspeed---Dev-f199.html&quot; embed=&quot;fixTarget[199]&quot; target=&quot;_top&quot; &gt;Jetspeed - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-jira--Created%3A-%28JS2-749%29-Jetspeed-Login-Module-fails-to-load-on-Windows-in-directories-with-spaces-in-the-path-tp11585768p26813308.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26811976</id>
	<title>svn commit: r891250 - /portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp</title>
	<published>2009-12-16T06:32:07Z</published>
	<updated>2009-12-16T06:32:07Z</updated>
	<author>
		<name>woonsan</name>
	</author>
	<content type="html">Author: woonsan
&lt;br&gt;Date: Wed Dec 16 14:32:06 2009
&lt;br&gt;New Revision: 891250
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=891250&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=891250&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;JS2-1057: Adding logic to use least used column to add a portlet fragment
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp?rev=891250&amp;r1=891249&amp;r2=891250&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp?rev=891250&amp;r1=891249&amp;r2=891250&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp (original)
&lt;br&gt;+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/toolbox/toolbox.jsp Wed Dec 16 14:32:06 2009
&lt;br&gt;@@ -325,7 +325,8 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var config = {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;on: { complete: onAddPortletComplete },
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;method: &amp;quot;POST&amp;quot;,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;headers: { &amp;quot;X-Portal-Path&amp;quot; : &amp;quot;${portalPagePath}&amp;quot; } 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;headers: { &amp;quot;X-Portal-Path&amp;quot; : &amp;quot;${portalPagePath}&amp;quot; },
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;data: &amp;quot;minrowscol=true&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;};
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var request = Y.io(uri, config);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26811976&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26811976&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Jetspeed---Dev-f199.html&quot; embed=&quot;fixTarget[199]&quot; target=&quot;_top&quot; &gt;Jetspeed - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r891250----portals-jetspeed-2-applications-j2-admin-trunk-src-main-webapp-WEB-INF-view-toolbox-toolbox.jsp-tp26811976p26811976.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26811960</id>
	<title>svn commit: r891249 - in /portals/jetspeed-2/portal/trunk: applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/ applications/jetspeed/src/main/webapp/jetui/engine/ components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/</title>
	<published>2009-12-16T06:31:15Z</published>
	<updated>2009-12-16T06:31:15Z</updated>
	<author>
		<name>woonsan</name>
	</author>
	<content type="html">Author: woonsan
&lt;br&gt;Date: Wed Dec 16 14:31:14 2009
&lt;br&gt;New Revision: 891249
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=891249&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=891249&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;JS2-1057: Adding logic to use least used column to add a portlet fragment
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PageLayoutService.java
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js?rev=891249&amp;r1=891248&amp;r2=891249&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js?rev=891249&amp;r1=891248&amp;r2=891249&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js Wed Dec 16 14:31:14 2009
&lt;br&gt;@@ -126,7 +126,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @method initializer
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * @protected
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;initializer : function(cfg) { 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;initializer : function(cfg) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.portalContextPath = cfg.portalContextPath;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.portalServletPath = cfg.portalServletPath;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.portalPagePath = cfg.portalPagePath;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;},
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;@@ -437,6 +440,13 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;});
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * The portal singleton instance
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if (JETUI_YUI &amp;&amp; !JETUI_YUI.portalInstance) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JETUI_YUI.portalInstance = new Y.JetUI.Portal(JETUI_YUI.config);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * Create a portlet window to represent a portal window.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; *
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * @class JetUI.Portlet
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js?rev=891249&amp;r1=891248&amp;r2=891249&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js?rev=891249&amp;r1=891248&amp;r2=891249&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/jetui/engine/portal.js Wed Dec 16 14:31:14 2009
&lt;br&gt;@@ -4,14 +4,7 @@
&lt;br&gt;&amp;nbsp;	var config = JETUI_YUI.config;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Y.log(&amp;quot;Starting up JETUI &amp;quot; + &amp;nbsp;config.engine + &amp;quot; engine...&amp;quot;);
&lt;br&gt;&amp;nbsp;	
&lt;br&gt;- &amp;nbsp; &amp;nbsp;// initialize singleton portal instance
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if (!JETUI_YUI.portalInstance) {
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JETUI_YUI.portalInstance = new Y.JetUI.Portal();
&lt;br&gt;- &amp;nbsp; &amp;nbsp;} &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;var portal = JETUI_YUI.portalInstance;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;portal.portalContextPath = config.portalContextPath;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;portal.portalServletPath = config.portalServletPath;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;portal.portalPagePath = config.portalPagePath;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;//////////////////////////////////////////////////// &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;// Create Navigator Portlet
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PageLayoutService.java
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PageLayoutService.java?rev=891249&amp;r1=891248&amp;r2=891249&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PageLayoutService.java?rev=891249&amp;r1=891248&amp;r2=891249&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PageLayoutService.java (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PageLayoutService.java Wed Dec 16 14:31:14 2009
&lt;br&gt;@@ -25,6 +25,7 @@
&lt;br&gt;&amp;nbsp;import javax.servlet.ServletContext;
&lt;br&gt;&amp;nbsp;import javax.servlet.http.HttpServletRequest;
&lt;br&gt;&amp;nbsp;import javax.ws.rs.DELETE;
&lt;br&gt;+import javax.ws.rs.FormParam;
&lt;br&gt;&amp;nbsp;import javax.ws.rs.GET;
&lt;br&gt;&amp;nbsp;import javax.ws.rs.POST;
&lt;br&gt;&amp;nbsp;import javax.ws.rs.PUT;
&lt;br&gt;@@ -35,6 +36,7 @@
&lt;br&gt;&amp;nbsp;import javax.ws.rs.core.Context;
&lt;br&gt;&amp;nbsp;import javax.ws.rs.core.UriInfo;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+import org.apache.commons.lang.BooleanUtils;
&lt;br&gt;&amp;nbsp;import org.apache.commons.lang.StringUtils;
&lt;br&gt;&amp;nbsp;import org.apache.commons.lang.math.NumberUtils;
&lt;br&gt;&amp;nbsp;import org.apache.jetspeed.JetspeedActions;
&lt;br&gt;@@ -125,7 +127,10 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;public ContentFragmentBean addContentFragment(@Context HttpServletRequest servletRequest,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@Context UriInfo uriInfo,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@PathParam(&amp;quot;type&amp;quot;) String fragmentType,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@PathParam(&amp;quot;name&amp;quot;) String fragmentName)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@PathParam(&amp;quot;name&amp;quot;) String fragmentName,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@FormParam(&amp;quot;row&amp;quot;) String rowParam,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@FormParam(&amp;quot;col&amp;quot;) String colParam,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@FormParam(&amp;quot;minrowscol&amp;quot;) String minRowsColumnParam)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (StringUtils.isBlank(fragmentType) || StringUtils.isBlank(fragmentName))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;@@ -135,15 +140,49 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RequestContext requestContext = (RequestContext) servletRequest.getAttribute(RequestContext.REQUEST_PORTALENV);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ContentPage contentPage = getContentPage(requestContext, JetspeedActions.EDIT);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int row = NumberUtils.toInt(rowParam, -1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int col = NumberUtils.toInt(colParam, -1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean minRowsColumn = BooleanUtils.toBoolean(minRowsColumnParam);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ContentFragment contentFragment = pageLayoutComponent.addPortlet(contentPage, fragmentType, fragmentName);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String addedContentFragmentId = contentFragment.getId();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;boolean needToAdjustPositions = false;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ContentFragment layoutFragment = null;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int columnCount = -1;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (contentFragment.getLayoutColumn() == -1 || contentFragment.getLayoutRow() == -1)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (col == -1 &amp;&amp; minRowsColumn)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String addedContentFragmentId = contentFragment.getId();
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ContentFragment layoutFragment = getParentFragment(pageLayoutComponent.getUnlockedRootFragment(contentPage), addedContentFragmentId);
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int columnCount = getColumnCountOfLayoutFragment(layoutFragment);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;layoutFragment = getParentFragment(pageLayoutComponent.getUnlockedRootFragment(contentPage), addedContentFragmentId);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;columnCount = getColumnCountOfLayoutFragment(layoutFragment);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;col = getMinRowsColumnIndex(layoutFragment, columnCount);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (row != -1 || col != -1) 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pageLayoutComponent.updateRowColumn(contentFragment, row, col);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;needToAdjustPositions = true;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;needToAdjustPositions = (contentFragment.getLayoutColumn() == -1 || contentFragment.getLayoutRow() == -1);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (needToAdjustPositions)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (layoutFragment == null)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;layoutFragment = getParentFragment(pageLayoutComponent.getUnlockedRootFragment(contentPage), addedContentFragmentId);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (columnCount == -1)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;columnCount = getColumnCountOfLayoutFragment(layoutFragment);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;adjustPositionsOfChildFragments(layoutFragment, columnCount);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;@@ -407,6 +446,14 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return new DecorationBean(decoration);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Returns the content page of the current portal request context with security check.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param requestContext the portal request context
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param action the action to check the security against.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @throws WebApplicationException
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private ContentPage getContentPage(RequestContext requestContext, String action) throws WebApplicationException
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try
&lt;br&gt;@@ -427,6 +474,12 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Returns the parent layout content fragment of the content fragment specified by the fragmentId.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param contentFragment the seed content fragment where searching starts from.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param fragmentId the fragment id of the content fragment, of which the parent fragment is looked for.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private ContentFragment getParentFragment(ContentFragment contentFragment, String fragmentId)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (ContentFragment child : (List&amp;lt;ContentFragment&amp;gt;) contentFragment.getFragments())
&lt;br&gt;@@ -449,6 +502,11 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return null;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Returns the column count of the layout content fragment based on the init parameters of the layout portlet.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param layoutFragment
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private int getColumnCountOfLayoutFragment(ContentFragment layoutFragment)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int columnCount = 1;
&lt;br&gt;@@ -483,6 +541,12 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return columnCount;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Returns child content fragment set array ordered by the column index from the layout content fragment.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param layoutFragment
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param columnCount
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @return
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private SortedSet&amp;lt;ContentFragment&amp;gt; [] getSortedChildFragmentSetArray(ContentFragment layoutFragment, int columnCount)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (columnCount &amp;lt;= 0)
&lt;br&gt;@@ -513,6 +577,12 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return fragmentSetArray;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Adjusts the rows and cols of each content fragment contained in the layout fragment.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param layoutFragment
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @param columnCount the column count of the layout fragment.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * @see #getColumnCountOfLayoutFragment(ContentFragment)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private void adjustPositionsOfChildFragments(ContentFragment layoutFragment, int columnCount)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SortedSet&amp;lt;ContentFragment&amp;gt; [] fragmentSetArray = getSortedChildFragmentSetArray(layoutFragment, columnCount);
&lt;br&gt;@@ -533,6 +603,31 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;private int getMinRowsColumnIndex(ContentFragment layoutFragment, int columnCount)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SortedSet&amp;lt;ContentFragment&amp;gt; [] fragmentSetArray = getSortedChildFragmentSetArray(layoutFragment, columnCount);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int col = fragmentSetArray.length - 1;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;int rowCount = fragmentSetArray[col].size();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = fragmentSetArray.length - 2; i &amp;gt;= 0; i--)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (fragmentSetArray[i].size() &amp;lt; rowCount)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;col = i;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;rowCount = fragmentSetArray[i].size();
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return col;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * ContentFragmentRowComparator
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;P&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Comparator to compare content fragments by the row index in a column.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * &amp;lt;/P&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;private static class ContentFragmentRowComparator implements Comparator&amp;lt;ContentFragment&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;public int compare(ContentFragment f1, ContentFragment f2)
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26811960&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26811960&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Jetspeed---Dev-f199.html&quot; embed=&quot;fixTarget[199]&quot; target=&quot;_top&quot; &gt;Jetspeed - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r891249---in--portals-jetspeed-2-portal-trunk%3A-applications-jetspeed-src-main-webapp-javascript-jetspeed-jetui--applications-jetspeed-src-main-webapp-jetui-engine--components-jetspeed-portal-src-main-java-org-apache-jetspeed-services-rest--tp26811960p26811960.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26810061</id>
	<title>svn commit: r891204 - /portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js</title>
	<published>2009-12-16T04:01:26Z</published>
	<updated>2009-12-16T04:01:26Z</updated>
	<author>
		<name>woonsan</name>
	</author>
	<content type="html">Author: woonsan
&lt;br&gt;Date: Wed Dec 16 12:01:25 2009
&lt;br&gt;New Revision: 891204
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=891204&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=891204&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;JS2-1057: Fixing wrong column index problem when adding a portlet in /portal pipeline.
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js
&lt;br&gt;&lt;br&gt;Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js?rev=891204&amp;r1=891203&amp;r2=891204&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js?rev=891204&amp;r1=891203&amp;r2=891204&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js (original)
&lt;br&gt;+++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/jetui/jetui-portal.js Wed Dec 16 12:01:25 2009
&lt;br&gt;@@ -422,8 +422,14 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;groups: dropGroups &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;});
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var columns = Y.Node.all(JetuiConfiguration.layoutStyle); 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;columns.item(parseInt(fragment.properties.column)).appendChild(v);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var columns = [];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Y.Node.all(JetuiConfiguration.layoutStyle).each(function(v, k) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var locked = v.getAttribute(&amp;quot;locked&amp;quot;);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!locked || &amp;quot;false&amp;quot; == locked) {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;columns.push(v);
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;});
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;columns[parseInt(fragment.properties.column)].appendChild(v);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var uri = portal.portalContextPath + &amp;quot;/portlet&amp;quot; + portal.portalPagePath + &amp;quot;?entity=&amp;quot; + fragment.id;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;var request = Y.io(uri, { on: { complete: this.onPortletRenderComplete }, arguments: { complete: v } } );
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26810061&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26810061&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Jetspeed---Dev-f199.html&quot; embed=&quot;fixTarget[199]&quot; target=&quot;_top&quot; &gt;Jetspeed - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r891204----portals-jetspeed-2-portal-trunk-applications-jetspeed-src-main-webapp-javascript-jetspeed-jetui-jetui-portal.js-tp26810061p26810061.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26808162</id>
	<title>[jira] Created: (JS2-1090) Jetspeed 2.1 derby database becoming huge.</title>
	<published>2009-12-16T01:02:18Z</published>
	<updated>2009-12-16T01:02:18Z</updated>
	<author>
		<name>Jetspeed - Dev mailing list</name>
	</author>
	<content type="html">Jetspeed 2.1 derby database becoming huge.
&lt;br&gt;------------------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Key: JS2-1090
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/JS2-1090&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/JS2-1090&lt;/a&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Project: Jetspeed 2
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Issue Type: Task
&lt;br&gt;&amp;nbsp; &amp;nbsp; Affects Versions: 2.1.1-RC
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Environment: Windows 2003 SP2
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Reporter: Nishant Malviya
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Fix For: 2.1.1-RC
&lt;br&gt;&lt;br&gt;&lt;br&gt;The customer has 2 portlet applications. one with 36 portlets and the second one with only 1 portlet. The customer is complaining that there are a couple .dat files that are taking up a large amount of space:
&lt;br&gt;&lt;br&gt;&amp;nbsp;...jetspeed\2.1\database\derby\productiondb\seg0:
&lt;br&gt;&lt;br&gt;c3c0.dat (12.5 GB)
&lt;br&gt;c3d0.dat (8.78 GB)
&lt;br&gt;&lt;br&gt;There are 283 other *.dat files in the same folder of much smaller size. Does this amount of space seem reasonable for the amount of deployed portlets? &amp;nbsp;Is there any way to reduce this size?
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26808162&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26808162&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jetspeed-dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;p&gt;From forum: &lt;a href=&quot;http://old.nabble.com/Jetspeed---Dev-f199.html&quot; embed=&quot;fixTarget[199]&quot; target=&quot;_top&quot; &gt;Jetspeed - Dev&lt;/a&gt;&lt;/p&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-jira--Created%3A-%28JS2-1090%29-Jetspeed-2.1-derby-database-becoming-huge.-tp26808162p26808162.html" />
</entry>

</feed>
