You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by rw...@apache.org on 2009/11/18 19:24:53 UTC

svn commit: r881862 [13/16] - in /portals/jetspeed-2/portal/trunk: ./ applications/jetspeed/src/main/webapp/WEB-INF/jetui/yui/ applications/jetspeed/src/main/webapp/WEB-INF/templates/ applications/jetspeed/src/main/webapp/decorations/layout/greenearth/...

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/PortletPlacementContextImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/PortletPlacementContextImpl.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/PortletPlacementContextImpl.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/PortletPlacementContextImpl.java Wed Nov 18 18:24:48 2009
@@ -22,17 +22,15 @@
 import java.util.ArrayList;
 import java.util.Map;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.apache.jetspeed.components.portletregistry.PortletRegistry;
 import org.apache.jetspeed.layout.Coordinate;
 import org.apache.jetspeed.layout.PortletPlacementException;
 import org.apache.jetspeed.layout.PortletPlacementContext;
-import org.apache.jetspeed.om.page.Fragment;
-import org.apache.jetspeed.om.page.Page;
-import org.apache.jetspeed.om.portlet.InitParam;
-import org.apache.jetspeed.om.portlet.PortletDefinition;
+import org.apache.jetspeed.om.page.ContentFragment;
+import org.apache.jetspeed.om.page.ContentPage;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Portal Placement Context
@@ -80,12 +78,12 @@
 	//
 	protected ArrayList[] columnsList = null;
 	
-	// Used as a convience when looking up a particular fragment
+	// Used as a convenience when looking up a particular fragment
 	//
 	// key is Fragment id (String), value is a Coordinate object
 	protected Map fragmentCoordinateMap = new HashMap();
 	
-	// Used as a convience when looking up a particular fragment by id
+	// Used as a convenience when looking up a particular fragment by id
 	//
 	// key is the Fragment id (String), value is the Fragment
 	protected Map fragmentMap = new HashMap();
@@ -93,31 +91,37 @@
 	// Number of columns
 	protected int numberOfColumns = -1;
 	
-    protected Page page;
+    protected ContentPage page;
     private PortletRegistry registry;
-    protected Fragment layoutContainerFragment;
+    protected ContentFragment layoutContainerFragment;
         
-	public PortletPlacementContextImpl( Page page, PortletRegistry registry ) 
+	public PortletPlacementContextImpl( ContentPage page, PortletRegistry registry ) 
         throws PortletPlacementException 
     {
-		this( page, registry, null );
+		this( page, registry, null, null );
 	}
         
-    public PortletPlacementContextImpl( Page page, PortletRegistry registry, Fragment container ) 
+    public PortletPlacementContextImpl( ContentPage page, PortletRegistry registry, ContentFragment container ) 
         throws PortletPlacementException 
     {
-    	if ( page == null )
-    		throw new NullPointerException( "PortletPlacementContext cannot be instantiated with a null Page argument" );
-    	if ( registry == null )
-    		throw new NullPointerException( "PortletPlacementContext cannot be instantiated with a null PortletRegistry argument" );
-    	
-    	this.page = page;
-    	this.registry = registry;
-    	
-    	init( container );
+        this( page, registry, container, null );
     }
 	
-    protected void init( Fragment container )
+    public PortletPlacementContextImpl( ContentPage page, PortletRegistry registry, ContentFragment container, ContentFragment excludeFragment ) 
+        throws PortletPlacementException 
+    {
+        if ( page == null )
+            throw new NullPointerException( "PortletPlacementContext cannot be instantiated with a null ContentPage argument" );
+        if ( registry == null )
+            throw new NullPointerException( "PortletPlacementContext cannot be instantiated with a null PortletRegistry argument" );
+    
+        this.page = page;
+        this.registry = registry;
+    
+        init( container, excludeFragment );
+    }
+
+    protected void init( ContentFragment container, ContentFragment excludeFragment )
         throws PortletPlacementException 
     {
         if ( container == null )
@@ -132,19 +136,19 @@
         }
         this.layoutContainerFragment = container;
         
-        int columnCount = PortletPlacementContextImpl.getColumnCountAndSizes( container, registry, null );
+        int columnCount = PortletPlacementMetadataAccess.getColumnCountAndSizes( container, registry, null );
         if ( columnCount <= 0 )
         {
         	throw new PortletPlacementException( "PortletPlacementContext cannot detemine number of columns in layout fragment (" + container.getId() + ")" );
         }
         this.numberOfColumns = columnCount;
         
-        initProcessLayoutContainerFragment();
+        initProcessLayoutContainerFragment( excludeFragment );
         
         //debugFragments( "init" );
 	}
 	
-	private void initProcessLayoutContainerFragment() 
+	private void initProcessLayoutContainerFragment( ContentFragment excludeFragment ) 
         throws PortletPlacementException 
     {
         List fragChildren = this.layoutContainerFragment.getFragments();
@@ -161,8 +165,8 @@
         }
         for( int fragChildIndex = 0; fragChildIndex < fragChildCount; fragChildIndex++ ) 
         {
-            Fragment fragment = (Fragment)fragChildren.get( fragChildIndex );		
-            if ( fragment != null )
+            ContentFragment fragment = (ContentFragment)fragChildren.get( fragChildIndex );		
+            if ( ( fragment != null ) && ( fragment != excludeFragment ) )
             {
             	int col = getColumnFromFragment( fragment );            	
             	
@@ -237,7 +241,7 @@
             while ( nextEntryIndex != -1 )
             {
                 FragmentLinkedListEntry fragLLentry = ll[nextEntryIndex];
-                Fragment fragment = (Fragment)fragChildren.get( fragLLentry.getFragmentIndex() );
+                ContentFragment fragment = (ContentFragment)fragChildren.get( fragLLentry.getFragmentIndex() );
                 
                 fragmentsInColumn.add( fragment );
                 CoordinateImpl coordinate = new CoordinateImpl( colIndex, rowIndex );
@@ -251,7 +255,7 @@
         this.columnsList = columnFragments;
 	}
 	
-	private int getColumnFromFragment( Fragment fragment )
+	private int getColumnFromFragment( ContentFragment fragment )
 	{
 		// get column value in the same manner as /portal and /desktop rendering
 		
@@ -276,7 +280,7 @@
 		}
 		return col;
 	}
-	private Integer getRowFromFragment( Fragment fragment )
+	private Integer getRowFromFragment( ContentFragment fragment )
 	{
 		// get row value in the same manner as /portal and /desktop rendering
 		
@@ -399,13 +403,13 @@
             Iterator frags = column.iterator();
             while ( frags.hasNext() )
             {
-                Fragment f = (Fragment)frags.next();
+                ContentFragment f = (ContentFragment)frags.next();
                 out.append( "      frag " ).append( f == null ? "<null>" : ( f.getId() + " / " + f.getType() ) ).append( eol );
             }
         }
         return out.toString();
     }
-    public Fragment debugFragments( String debug )
+    public ContentFragment debugFragments( String debug )
     {
         log.info( dumpFragments( debug ) );
         return layoutContainerFragment;
@@ -417,7 +421,7 @@
      * 
      * @return the managed page layout with updated fragment state. 
      */
-    public Page syncPageFragments()
+    public ContentPage syncPageFragments()
     {
     	syncFragments( true, -1 );
     	//debugFragments( "syncPage" );
@@ -457,7 +461,7 @@
 	            int colRowCount = column.size();
 	        	for ( int rowIndex= 0; rowIndex < colRowCount; rowIndex++ )
 	        	{
-	        		Fragment fragment = (Fragment)column.get( rowIndex );
+	        		ContentFragment fragment = (ContentFragment)column.get( rowIndex );
 	                Coordinate coordinate = (Coordinate)this.fragmentCoordinateMap.get( fragment.getId() );
 	                boolean needsReplacementCoordinate = false;
 	                
@@ -471,15 +475,14 @@
 	        		}
 	        		if ( updateFragmentObjects )
 	                {
-	                	fragment.setLayoutColumn( colIndex );
-	                	fragment.setLayoutRow( rowIndex );
+	        		    fragment.updateRowColumn(rowIndex, colIndex);
 	                }
 	            }
         	}
         }
     }
     
-    public int getFragmentRow( Fragment fragment )
+    public int getFragmentRow( ContentFragment fragment )
     {
     	if ( fragment == null ) return -1;
 		Coordinate coordinate = (Coordinate)this.fragmentCoordinateMap.get( fragment.getId() );
@@ -491,7 +494,7 @@
 		return coordinate.getOldRow();
     }
     
-    public int getFragmentCol( Fragment fragment )
+    public int getFragmentCol( ContentFragment fragment )
     {
     	if ( fragment == null ) return -1;
 		Coordinate coordinate = (Coordinate)this.fragmentCoordinateMap.get( fragment.getId() );
@@ -503,22 +506,22 @@
 		return coordinate.getOldCol();
     }
 			
-	public Fragment getFragment( String fragmentId ) throws PortletPlacementException 
+	public ContentFragment getFragment( String fragmentId ) throws PortletPlacementException 
     {
-		return (Fragment)this.fragmentMap.get( fragmentId );
+		return (ContentFragment)this.fragmentMap.get( fragmentId );
 	}
 	
-	public Fragment getFragmentAtOldCoordinate( Coordinate coordinate ) throws PortletPlacementException 
+	public ContentFragment getFragmentAtOldCoordinate( Coordinate coordinate ) throws PortletPlacementException 
     {
 		return getFragmentAtCoordinate( coordinate, true, false );
 	}
 
-	public Fragment getFragmentAtNewCoordinate( Coordinate coordinate ) throws PortletPlacementException 
+	public ContentFragment getFragmentAtNewCoordinate( Coordinate coordinate ) throws PortletPlacementException 
     {
 		return getFragmentAtCoordinate( coordinate, false, false );
 	}
 
-	protected Fragment getFragmentAtCoordinate( Coordinate coordinate, boolean useOldCoordinateValues, boolean suppressExceptions ) throws PortletPlacementException 
+	protected ContentFragment getFragmentAtCoordinate( Coordinate coordinate, boolean useOldCoordinateValues, boolean suppressExceptions ) throws PortletPlacementException 
     {
 		int col = -1;
 		int row = -1;
@@ -550,12 +553,12 @@
 			throw new PortletPlacementException( "Requested row (" + row + ") is out of bounds (col[" + col + "].row-count=" + columnArray.size() + ")" );
 		}
 		
-		return (Fragment)columnArray.get( row );
+		return (ContentFragment)columnArray.get( row );
 	}
 	
-	public Fragment getFragmentById( String fragmentId ) throws PortletPlacementException 
+	public ContentFragment getFragmentById( String fragmentId ) throws PortletPlacementException 
     {
-		return (Fragment)this.fragmentMap.get( fragmentId );
+		return (ContentFragment)this.fragmentMap.get( fragmentId );
 	}
 
 	public int getNumberColumns() throws PortletPlacementException 
@@ -573,17 +576,17 @@
 		return this.columnsList[col].size();
 	}
 	
-	public Coordinate add( Fragment fragment, Coordinate coordinate ) throws PortletPlacementException 
+	public Coordinate add( ContentFragment fragment, Coordinate coordinate ) throws PortletPlacementException 
     {
 		return moveAbsolute( fragment, coordinate, true );
 	}
 
-	public Coordinate moveAbsolute( Fragment fragment, Coordinate newCoordinate )
+	public Coordinate moveAbsolute( ContentFragment fragment, Coordinate newCoordinate )
         throws PortletPlacementException 
     {
 		return moveAbsolute( fragment, newCoordinate, false );
     }
-	public Coordinate moveAbsolute( Fragment fragment, Coordinate newCoordinate, boolean okToAddFragment )
+	public Coordinate moveAbsolute( ContentFragment fragment, Coordinate newCoordinate, boolean okToAddFragment )
         throws PortletPlacementException 
     {
 		if ( fragment == null )
@@ -643,7 +646,7 @@
 		return (Coordinate)this.fragmentCoordinateMap.get( fragment.getId() );
 	}
 
-	protected Coordinate moveDirection( Fragment fragment, int deltaCol, int deltaRow ) 
+	protected Coordinate moveDirection( ContentFragment fragment, int deltaCol, int deltaRow ) 
         throws PortletPlacementException 
     {
 		if ( fragment == null )
@@ -686,27 +689,27 @@
 		return (Coordinate)this.fragmentCoordinateMap.get( fragment.getId() );
 	}
 	
-	public Coordinate moveDown( Fragment fragment ) throws PortletPlacementException 
+	public Coordinate moveDown( ContentFragment fragment ) throws PortletPlacementException 
     {
 		return moveDirection( fragment, 0, 1 );
 	}
 
-	public Coordinate moveUp( Fragment fragment ) throws PortletPlacementException 
+	public Coordinate moveUp( ContentFragment fragment ) throws PortletPlacementException 
     {
 		return moveDirection( fragment, 0, -1 );
 	}
 
-	public Coordinate moveLeft( Fragment fragment ) throws PortletPlacementException 
+	public Coordinate moveLeft( ContentFragment fragment ) throws PortletPlacementException 
     {
 		return moveDirection( fragment, -1, 0 );
 	}
 
-	public Coordinate moveRight( Fragment fragment ) throws PortletPlacementException 
+	public Coordinate moveRight( ContentFragment fragment ) throws PortletPlacementException 
     {
 		return moveDirection( fragment, 1, 0 );
 	}
 
-	public Coordinate remove( Fragment fragment ) throws PortletPlacementException 
+	public Coordinate remove( ContentFragment fragment ) throws PortletPlacementException 
     {
 		if ( fragment == null )
     		throw new NullPointerException( "PortletPlacementContext remove() cannot accept a null Fragment argument" );
@@ -732,13 +735,13 @@
 		return currentCoordinate;
 	}
 	
-	protected Fragment verifyFragmentAtExpectedCoordinate( int colIndex, int rowIndex, Fragment fragment, String sourceDesc )
+	protected ContentFragment verifyFragmentAtExpectedCoordinate( int colIndex, int rowIndex, ContentFragment fragment, String sourceDesc )
 		throws PortletPlacementException
 	{
 		CoordinateImpl coordinate = new CoordinateImpl( colIndex, rowIndex );
 		
 		boolean suppressExceptions = ( fragment != null );
-		Fragment foundFragment = getFragmentAtCoordinate( coordinate, true, suppressExceptions );
+		ContentFragment foundFragment = getFragmentAtCoordinate( coordinate, true, suppressExceptions );
 		
 		if ( fragment != null )
 		{
@@ -782,120 +785,4 @@
 		}
 		return fragment;
 	}
-
-	static public int getColumnCountAndSizes( Fragment layoutFragment, PortletRegistry registry, Map fragSizes )
-	{
-		return PortletPlacementContextImpl.getColumnCountAndSizes( layoutFragment, registry, fragSizes, false );
-	}
-    static public int getColumnCountAndSizes( Fragment layoutFragment, PortletRegistry registry, Map fragSizes, boolean suppressErrorLogging )
-	{
-    	if ( layoutFragment == null )
-    		throw new NullPointerException( "getColumnCountAndSizes cannot accept a null Fragment argument" );
-    	if ( registry == null )
-    		throw new NullPointerException( "getColumnCountAndSizes cannot accept a null PortletRegistry argument" );
-    	
-		int columnCount = -1;
-		if ( ! "layout".equals( layoutFragment.getType() ) )
-		{
-			if ( ! suppressErrorLogging )
-				log.error( "getColumnCountAndSizes not a layout fragment - " + layoutFragment.getId() + " type=" + layoutFragment.getType() );
-		}
-		else
-    	{   // get layout fragment sizes
-    		String sizesVal = layoutFragment.getProperty( "sizes" );
-    		String layoutName = layoutFragment.getName();
-    		layoutName = ( (layoutName != null && layoutName.length() > 0) ? layoutName : (String)null );
-    		PortletDefinition portletDef = null;
-    		if ( sizesVal == null || sizesVal.length() == 0 )
-    		{
-    			if ( layoutName != null )
-    			{
-    				// logic below is copied from org.apache.jetspeed.portlets.MultiColumnPortlet
-    				portletDef = registry.getPortletDefinitionByUniqueName( layoutName, true );
-                    if ( portletDef != null )
-                    {
-                        InitParam sizesParam = portletDef.getInitParam( "sizes" );
-                        sizesVal = ( sizesParam == null ) ? null : sizesParam.getParamValue();
-                    }
-    			}
-    		}
-    		if ( sizesVal != null && sizesVal.length() > 0 )
-    		{
-    			if ( fragSizes != null )
-    				fragSizes.put( layoutFragment.getId(), sizesVal );
-					
-				int sepPos = -1, startPos = 0, sizesLen = sizesVal.length();
-				columnCount = 0;
-				do
-				{
-					sepPos = sizesVal.indexOf( ',', startPos );
-					if ( sepPos != -1 )
-					{
-						if ( sepPos > startPos )
-							columnCount++;
-						startPos = sepPos +1;
-					}
-					else if ( startPos < sizesLen )
-					{
-						columnCount++;
-					}
-				} while ( startPos < sizesLen && sepPos != -1 );
-				if ( ! suppressErrorLogging && columnCount <= 0 )
-					log.error( "getColumnCountAndSizes invalid columnCount - " + layoutFragment.getId() + " / " + layoutName + " count=" + columnCount + " sizes=" + sizesVal );
-			}
-			else if ( portletDef == null || portletDef.getInitParams().isEmpty() )
-			{
-				if ( ! suppressErrorLogging )
-				{
-					if ( layoutName == null )
-						log.error( "getColumnCountAndSizes null sizes, null layoutName - " + layoutFragment.getId() );
-					else if ( portletDef == null )
-						log.error( "getColumnCountAndSizes null sizes, null PortletDefinition - " + layoutFragment.getId() + " / " + layoutName );
-					else
-						log.error( "getColumnCountAndSizes null sizes, null ParameterSet - " + layoutFragment.getId() + " / " + layoutName );
-				}
-			}
-			else
-			{
-				InitParam colsParam = portletDef.getInitParam( "columns" );
-				String colsParamVal = ( colsParam == null ) ? null : colsParam.getParamValue();
-				if ( colsParamVal != null && colsParamVal.length() > 0 )
-				{
-					try
-					{
-						columnCount = Integer.parseInt( colsParamVal );
-					}
-					catch ( NumberFormatException ex )
-					{
-					}
-					if ( columnCount < 1 )
-					{
-						columnCount = 2;
-					}
-					switch ( columnCount )
-					{
-	            		case 1: sizesVal = "100%"; break;
-	            		case 2: sizesVal = "50%,50%"; break;
-	            		case 3: sizesVal = "34%,33%,33%"; break;
-	            		case 4: sizesVal = "25%,25%,25%,25%"; break;
-	            		default: 
-	            		{
-	            			sizesVal = "50%,50%";
-	            			columnCount = 2;
-	            			break;
-	            		}
-					}
-					if ( fragSizes != null )
-						fragSizes.put( layoutFragment.getId(), sizesVal );
-					//log.info( "getColumnCountAndSizes " + layoutFragment.getId() + " count=" + columnCount + " defaulted-sizes=" + sizesParamVal );
-				}
-				else
-				{
-					if ( ! suppressErrorLogging )
-						log.error( "getColumnCountAndSizes null sizes, columns not defined in ParameterSet - " + layoutFragment.getId() + " / " + layoutName );
-				}
-			}
-    	}
-		return columnCount;
-	}	
 }

Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/PortletPlacementMetadataAccess.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/PortletPlacementMetadataAccess.java?rev=881862&view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/PortletPlacementMetadataAccess.java (added)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/PortletPlacementMetadataAccess.java Wed Nov 18 18:24:48 2009
@@ -0,0 +1,247 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.layout.impl;
+
+import java.util.Map;
+
+import org.apache.jetspeed.components.portletregistry.PortletRegistry;
+import org.apache.jetspeed.om.page.ContentFragment;
+import org.apache.jetspeed.om.page.Fragment;
+import org.apache.jetspeed.om.portlet.InitParam;
+import org.apache.jetspeed.om.portlet.PortletDefinition;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * PageMetadataAccess used to extract layout data from
+ * Fragment and ContentFragment hierarchies.
+ *
+ * @author <a>David Gurney</a>
+ * @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
+ * @author <a href="mailto:smilek@apache.org">Steve Milek</a>
+ * @author <a href="mailto:rwatler@apache.org">Randy Watler</a>
+ * @version $Id: $
+ */
+public class PortletPlacementMetadataAccess
+{
+    private static Logger log = LoggerFactory.getLogger( PortletPlacementMetadataAccess.class );
+
+    /**
+     * Access layout fragment hierarchy metadata.
+     *  
+     * @param layoutFragment layout fragment root
+     * @param registry registry component
+     * @param fragSizes returned sizes metadata
+     * @param suppressErrorLogging logging flag
+     * @return column count metadata
+     */
+    public static int getColumnCountAndSizes( Object layoutFragment, PortletRegistry registry, Map fragSizes )
+    {
+        return getColumnCountAndSizes( layoutFragment, registry, fragSizes, false );
+    }
+    
+    /**
+     * Access layout fragment hierarchy metadata.
+     *  
+     * @param layoutFragment layout fragment root
+     * @param registry registry component
+     * @param fragSizes returned sizes metadata
+     * @param suppressErrorLogging logging flag
+     * @return column count metadata
+     */
+    public static int getColumnCountAndSizes( Object layoutFragment, PortletRegistry registry, Map fragSizes, boolean suppressErrorLogging )
+    {
+        if ( ! ( ( layoutFragment instanceof ContentFragment ) || ( layoutFragment instanceof Fragment ) ) )
+        {
+            throw new NullPointerException( "getColumnCountAndSizes cannot accept a null or non Fragment argument" );
+        }
+        if ( registry == null )
+        {
+            throw new NullPointerException( "getColumnCountAndSizes cannot accept a null PortletRegistry argument" );
+        }
+        
+        int columnCount = -1;
+        if ( ! "layout".equals( getType( layoutFragment ) ) )
+        {
+            if ( ! suppressErrorLogging )
+            {
+                log.error( "getColumnCountAndSizes not a layout fragment - " + getId( layoutFragment ) + " type=" + getType( layoutFragment ) );
+            }
+        }
+        else
+        {   // get layout fragment sizes
+            String sizesVal = getProperty( layoutFragment, "sizes" );
+            String layoutName = getName( layoutFragment );
+            layoutName = ( (layoutName != null && layoutName.length() > 0) ? layoutName : (String)null );
+            PortletDefinition portletDef = null;
+            if ( sizesVal == null || sizesVal.length() == 0 )
+            {
+                if ( layoutName != null )
+                {
+                    // logic below is copied from org.apache.jetspeed.portlets.MultiColumnPortlet
+                    portletDef = registry.getPortletDefinitionByUniqueName( layoutName, true );
+                    if ( portletDef != null )
+                    {
+                        InitParam sizesParam = portletDef.getInitParam( "sizes" );
+                        sizesVal = ( sizesParam == null ) ? null : sizesParam.getParamValue();
+                    }
+                }
+            }
+            if ( sizesVal != null && sizesVal.length() > 0 )
+            {
+                if ( fragSizes != null )
+                {
+                    fragSizes.put( getId( layoutFragment ), sizesVal );
+                }
+                    
+                int sepPos = -1, startPos = 0, sizesLen = sizesVal.length();
+                columnCount = 0;
+                do
+                {
+                    sepPos = sizesVal.indexOf( ',', startPos );
+                    if ( sepPos != -1 )
+                    {
+                        if ( sepPos > startPos )
+                        {
+                            columnCount++;
+                        }
+                        startPos = sepPos +1;
+                    }
+                    else if ( startPos < sizesLen )
+                    {
+                        columnCount++;
+                    }
+                }
+                while ( startPos < sizesLen && sepPos != -1 );
+                
+                if ( ! suppressErrorLogging && columnCount <= 0 )
+                {
+                    log.error( "getColumnCountAndSizes invalid columnCount - " + getId( layoutFragment ) + " / " + layoutName + " count=" + columnCount + " sizes=" + sizesVal );
+                }
+            }
+            else if ( portletDef == null || portletDef.getInitParams().isEmpty() )
+            {
+                if ( ! suppressErrorLogging )
+                {
+                    if ( layoutName == null )
+                    {
+                        log.error( "getColumnCountAndSizes null sizes, null layoutName - " + getId( layoutFragment ) );
+                    }
+                    else if ( portletDef == null )
+                    {
+                        log.error( "getColumnCountAndSizes null sizes, null PortletDefinition - " + getId( layoutFragment ) + " / " + layoutName );
+                    }
+                    else
+                    {
+                        log.error( "getColumnCountAndSizes null sizes, null ParameterSet - " + getId( layoutFragment ) + " / " + layoutName );
+                    }
+                }
+            }
+            else
+            {
+                InitParam colsParam = portletDef.getInitParam( "columns" );
+                String colsParamVal = ( colsParam == null ) ? null : colsParam.getParamValue();
+                if ( colsParamVal != null && colsParamVal.length() > 0 )
+                {
+                    try
+                    {
+                        columnCount = Integer.parseInt( colsParamVal );
+                    }
+                    catch ( NumberFormatException ex )
+                    {
+                    }
+                    if ( columnCount < 1 )
+                    {
+                        columnCount = 2;
+                    }
+                    switch ( columnCount )
+                    {
+                        case 1: sizesVal = "100%"; break;
+                        case 2: sizesVal = "50%,50%"; break;
+                        case 3: sizesVal = "34%,33%,33%"; break;
+                        case 4: sizesVal = "25%,25%,25%,25%"; break;
+                        default: 
+                        {
+                            sizesVal = "50%,50%";
+                            columnCount = 2;
+                            break;
+                        }
+                    }
+                    if ( fragSizes != null )
+                    {
+                        fragSizes.put( getId( layoutFragment ), sizesVal );
+                    }
+                    // log.info( "getColumnCountAndSizes " + getId( layoutFragment ) + " count=" + columnCount + " defaulted-sizes=" + sizesVal );
+                }
+                else
+                {
+                    if ( ! suppressErrorLogging )
+                    {
+                        log.error( "getColumnCountAndSizes null sizes, columns not defined in ParameterSet - " + getId( layoutFragment ) + " / " + layoutName );
+                    }
+                }
+            }
+        }
+        return columnCount;
+    }
+    
+    /**
+     * Get layout fragment type.
+     * 
+     * @param f fragment
+     * @return fragment type
+     */
+    private static String getType( Object f )
+    {
+        return ( ( f instanceof ContentFragment ) ? ((ContentFragment) f).getType() : ((Fragment) f).getType() );
+    }
+
+    /**
+     * Get layout fragment id.
+     * 
+     * @param f fragment
+     * @return fragment id
+     */
+    private static String getId( Object f )
+    {
+        return ( ( f instanceof ContentFragment ) ? ((ContentFragment) f).getId() : ((Fragment) f).getId() );
+    }
+
+    /**
+     * Get layout fragment name.
+     * 
+     * @param f fragment
+     * @return fragment name
+     */
+    private static String getName( Object f )
+    {
+        return ( ( f instanceof ContentFragment ) ? ((ContentFragment) f).getName() : ((Fragment) f).getName() );
+    }
+
+    /**
+     * Get layout fragment property value.
+     * 
+     * @param f fragment
+     * @param propertyName fragment property name
+     * @return property value
+     */
+    private static String getProperty( Object f, String propertyName )
+    {
+        return ( ( f instanceof ContentFragment ) ? ((ContentFragment) f).getProperty( propertyName ) : ((Fragment) f).getProperty( propertyName ) );
+    }
+}

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/RemovePortletAction.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/RemovePortletAction.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/RemovePortletAction.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/RemovePortletAction.java Wed Nov 18 18:24:48 2009
@@ -27,8 +27,8 @@
 import org.apache.jetspeed.components.portletregistry.PortletRegistry;
 import org.apache.jetspeed.layout.PortletActionSecurityBehavior;
 import org.apache.jetspeed.layout.PortletPlacementContext;
-import org.apache.jetspeed.om.page.Fragment;
-import org.apache.jetspeed.om.page.Page;
+import org.apache.jetspeed.om.page.ContentFragment;
+import org.apache.jetspeed.om.page.ContentPage;
 import org.apache.jetspeed.page.PageManager;
 import org.apache.jetspeed.pipeline.PipelineException;
 import org.apache.jetspeed.request.RequestContext;
@@ -99,8 +99,8 @@
             resultMap.put( PORTLETID, portletId );
             if ( false == checkAccess( requestContext, JetspeedActions.EDIT ) )
             {
-                Page page = requestContext.getPage();
-                Fragment fragment = page.getFragmentById( portletId );
+                ContentPage page = requestContext.getPage();
+                ContentFragment fragment = page.getFragmentById( portletId );
                 if ( fragment == null )
                 {
                     success = false;
@@ -129,10 +129,10 @@
                 }
                 status = "refresh";
                 
-                Page newPage = requestContext.getPage();
+                ContentPage newPage = requestContext.getPage();
 
                 // using NestedFragmentContext, find portlet id for copy of target portlet in the new page 
-                Fragment newFragment = null;
+                ContentFragment newFragment = null;
                 try
                 {
                 	newFragment = removeFragmentContext.getFragmentOnNewPage( newPage, registry );
@@ -148,11 +148,11 @@
             }
             
             // Use the Portlet Placement Manager to accomplish the removal
-            Page page = requestContext.getPage();
-            Fragment root = page.getRootFragment();
-            Fragment layoutContainerFragment = getParentFragmentById( portletId, root );
+            ContentPage page = requestContext.getPage();
+            ContentFragment root = page.getRootFragment();
+            ContentFragment layoutContainerFragment = getParentFragmentById( portletId, root );
             PortletPlacementContext placement = null;
-            Fragment fragment = null;
+            ContentFragment fragment = null;
             if ( layoutContainerFragment != null )
             {
             	placement = new PortletPlacementContextImpl( page, registry, layoutContainerFragment );
@@ -166,12 +166,8 @@
             }
             placement.remove(fragment);
             page = placement.syncPageFragments();
-            page.removeFragmentById( fragment.getId() );
-            if (!batch)
-            {
-                if (pageManager != null)
-                    pageManager.updatePage( page );
-            }
+            page.removeFragment( fragment.getId() );
+
             // Build the results for the response
             resultMap.put( PORTLETID, portletId );            
             resultMap.put( STATUS, status );

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/UpdatePageAction.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/UpdatePageAction.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/UpdatePageAction.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/UpdatePageAction.java Wed Nov 18 18:24:48 2009
@@ -16,25 +16,24 @@
  */
 package org.apache.jetspeed.layout.impl;
 
-import java.util.HashMap;
 import java.util.Map;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.apache.jetspeed.JetspeedActions;
 import org.apache.jetspeed.ajax.AJAXException;
 import org.apache.jetspeed.ajax.AjaxAction;
 import org.apache.jetspeed.ajax.AjaxBuilder;
 import org.apache.jetspeed.layout.PortletActionSecurityBehavior;
 import org.apache.jetspeed.om.folder.Folder;
-import org.apache.jetspeed.om.page.ContentFragment;
-import org.apache.jetspeed.om.page.ContentFragmentImpl;
+import org.apache.jetspeed.om.page.BaseFragmentElement;
 import org.apache.jetspeed.om.page.Fragment;
 import org.apache.jetspeed.om.page.Page;
 import org.apache.jetspeed.page.PageManager;
 import org.apache.jetspeed.page.document.Node;
 import org.apache.jetspeed.request.RequestContext;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 /**
  * Update Page action -- updates various parts of the PSML page
  * 
@@ -97,7 +96,7 @@
             String path = getActionParameter(requestContext, "path");
             if (path == null)
             {
-                page = requestContext.getPage();
+                page = requestContext.getPage().getPage();
             }
             else
             {
@@ -115,6 +114,11 @@
                     }
                 }
             }
+            if (page == null)
+            {
+                throw new AJAXException("Missing current page or 'path' parameter");
+            }
+            
             if (method.equals("info"))
             {
                 count = updateInformation(requestContext, resultMap, page, path);
@@ -153,8 +157,13 @@
                 page.setTitle(getActionParameter(requestContext, TITLE));
                 String s = getActionParameter(requestContext, SHORT_TITLE );
                 if (!isBlank(s))
-                    page.setShortTitle(s);                
-                page.getRootFragment().setName(getActionParameter(requestContext, DEFAULT_LAYOUT));
+                    page.setShortTitle(s);
+                String l = getActionParameter(requestContext, DEFAULT_LAYOUT);
+                if (!isBlank(l) && (page.getRootFragment() instanceof Fragment))
+                {
+                    Fragment rootFragment = (Fragment)page.getRootFragment();
+                    rootFragment.setName(getActionParameter(requestContext, DEFAULT_LAYOUT));
+                }
                 count++;                
             }
             else if (method.equals("copy"))
@@ -246,7 +255,7 @@
     protected int updatePortletDecorator(RequestContext requestContext, Map resultMap, Page page, String fragmentId, String portletDecorator)
     {
     	int count = 0;
-    	Fragment fragment = page.getFragmentById(fragmentId);
+    	BaseFragmentElement fragment = page.getFragmentById(fragmentId);
         if (fragment != null)
         {                
         	fragment.setDecorator( portletDecorator );
@@ -259,13 +268,13 @@
     {
         int count = 0;
         String sizes = getActionParameter(requestContext, SIZES);
-        Fragment fragment = page.getFragmentById(fragmentId);
-        if (fragment != null)
-        {                
+        BaseFragmentElement updateFragment = page.getFragmentById(fragmentId);
+        if (updateFragment instanceof Fragment)
+        {
+            Fragment fragment = (Fragment)updateFragment;
             if (!layout.equals(fragment.getName()))
             {
                 fragment.setName(layout);
-                ContentFragment contentFragment = new ContentFragmentImpl(fragment, new HashMap());
                 count++;
                 if ( isBlank(sizes) )
                 {
@@ -293,9 +302,10 @@
     {
         int count = 0;
         String sizes = getActionParameter(requestContext, SIZES);
-        Fragment fragment = page.getFragmentById(parentFragmentId);
-        if (fragment != null)
+        BaseFragmentElement parentFragment = page.getFragmentById(parentFragmentId);
+        if (parentFragment instanceof Fragment)
         {
+            Fragment fragment = (Fragment)parentFragment;
             Fragment newFragment = pageManager.newFragment();
             newFragment.setType(Fragment.LAYOUT);            
             newFragment.setName(layout);
@@ -314,7 +324,7 @@
     protected int removeFragment(RequestContext requestContext, Map resultMap, Page page, String fragmentId)
     {
         int count = 0;
-        Fragment fragment = page.getFragmentById(fragmentId);
+        BaseFragmentElement fragment = page.getFragmentById(fragmentId);
         if (fragment != null)
         {
             page.removeFragmentById(fragment.getId());

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ActionValveImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ActionValveImpl.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ActionValveImpl.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/pipeline/valve/impl/ActionValveImpl.java Wed Nov 18 18:24:48 2009
@@ -149,7 +149,7 @@
         {
             throw new JetspeedException("Failed to find PSML Pin ContentPageAggregator.build");
         }
-        ContentFragment root = page.getRootContentFragment();
+        ContentFragment root = page.getRootFragment();
         if (root == null)
         {
             throw new JetspeedException("No root ContentFragment found in ContentPage");
@@ -168,7 +168,7 @@
         }
         else
         {
-            ContentFragment fragment = page.getContentFragmentById(actionWindow.getWindowId());
+            ContentFragment fragment = page.getFragmentById(actionWindow.getWindowId());
             
             if (fragment != null)
             {
@@ -203,9 +203,9 @@
    
     protected void notifyFragments(ContentFragment f, RequestContext context, ContentPage page)
     {
-        if (f.getContentFragments() != null && f.getContentFragments().size() > 0)
+        if (f.getFragments() != null && f.getFragments().size() > 0)
         {
-            for (Object child : f.getContentFragments())
+            for (Object child : f.getFragments())
             {
                 if (!"hidden".equals(f.getState()))
                 {

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/profiler/impl/CreateUserTemplatePagesValveImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/profiler/impl/CreateUserTemplatePagesValveImpl.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/profiler/impl/CreateUserTemplatePagesValveImpl.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/profiler/impl/CreateUserTemplatePagesValveImpl.java Wed Nov 18 18:24:48 2009
@@ -16,6 +16,7 @@
  */
 package org.apache.jetspeed.profiler.impl;
 
+import org.apache.jetspeed.layout.PageLayoutComponent;
 import org.apache.jetspeed.om.folder.Folder;
 import org.apache.jetspeed.om.folder.FolderNotFoundException;
 import org.apache.jetspeed.page.PageManager;
@@ -55,13 +56,15 @@
      *
      * @param profiler profiler component reference
      * @param portalSite portal site component reference
+     * @param pageLayoutComponent page layout component reference
      * @param requestFallback flag to enable root folder fallback
      * @param useHistory flag to enable selection of last visited folder page
      * @param pageManager pageManagerComponent reference
      */
-    public CreateUserTemplatePagesValveImpl(Profiler profiler, PortalSite portalSite, boolean requestFallback, boolean useHistoryPageManager, PageManager pageManager)
+    public CreateUserTemplatePagesValveImpl(Profiler profiler, PortalSite portalSite, PageLayoutComponent pageLayoutComponent,
+                                            boolean requestFallback, boolean useHistoryPageManager, PageManager pageManager)
     {
-        super(profiler, portalSite, requestFallback, useHistoryPageManager);
+        super(profiler, portalSite, pageLayoutComponent, requestFallback, useHistoryPageManager);
         this.pageManager = pageManager;
     }
     
@@ -70,13 +73,14 @@
      *
      * @param profiler profiler component reference
      * @param portalSite portal site component reference
+     * @param pageLayoutComponent page layout component reference
      * @param requestFallback flag to enable root folder fallback
      * @param pageManager pageManagerComponent reference
      */
-    public CreateUserTemplatePagesValveImpl(Profiler profiler, PortalSite portalSite, 
-                             boolean requestFallback, PageManager pageManager)
+    public CreateUserTemplatePagesValveImpl(Profiler profiler, PortalSite portalSite, PageLayoutComponent pageLayoutComponent,
+                                            boolean requestFallback, PageManager pageManager)
     {
-        super(profiler, portalSite, requestFallback);
+        super(profiler, portalSite, pageLayoutComponent, requestFallback);
         this.pageManager = pageManager;
     }
 
@@ -85,11 +89,12 @@
      *
      * @param profiler profiler component reference
      * @param portalSite portal site component reference
+     * @param pageLayoutComponent page layout component reference
      * @param pageManager pageManagerComponent reference
      */
-    public CreateUserTemplatePagesValveImpl(Profiler profiler, PortalSite portalSite, PageManager pageManager)
+    public CreateUserTemplatePagesValveImpl(Profiler profiler, PortalSite portalSite, PageLayoutComponent pageLayoutComponent, PageManager pageManager)
     {
-        super(profiler, portalSite);
+        super(profiler, portalSite, pageLayoutComponent);
         this.pageManager = pageManager;
     }
     

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/profiler/impl/ProfilerValveImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/profiler/impl/ProfilerValveImpl.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/profiler/impl/ProfilerValveImpl.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/profiler/impl/ProfilerValveImpl.java Wed Nov 18 18:24:48 2009
@@ -24,11 +24,10 @@
 import javax.security.auth.Subject;
 import javax.servlet.http.HttpServletResponse;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.apache.jetspeed.PortalReservedParameters;
 import org.apache.jetspeed.decoration.PageActionAccess;
-import org.apache.jetspeed.om.page.ContentPageImpl;
+import org.apache.jetspeed.layout.PageLayoutComponent;
+import org.apache.jetspeed.om.page.ContentPage;
 import org.apache.jetspeed.om.page.Page;
 import org.apache.jetspeed.page.document.NodeNotFoundException;
 import org.apache.jetspeed.pipeline.PipelineException;
@@ -45,6 +44,9 @@
 import org.apache.jetspeed.security.SubjectHelper;
 import org.apache.jetspeed.security.User;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 /**
  * ProfilerValveImpl
  * 
@@ -99,20 +101,28 @@
      *              history to select default page per site folder
      */
     private boolean useHistory;
+    
+    /**
+     * pageLayoutComponent - component used to construct and maintain ContentPage from
+     *                       profiled PSML Pages and Fragments.
+     */
+    private PageLayoutComponent pageLayoutComponent;
 
     /**
      * ProfilerValveImpl - constructor
      *
      * @param profiler profiler component reference
      * @param portalSite portal site component reference
+     * @param pageLayoutComponent page layout component reference
      * @param requestFallback flag to enable root folder fallback
      * @param useHistory flag to enable selection of last visited folder page
      */
-    public ProfilerValveImpl( Profiler profiler, PortalSite portalSite, 
+    public ProfilerValveImpl( Profiler profiler, PortalSite portalSite, PageLayoutComponent pageLayoutComponent,
                               boolean requestFallback, boolean useHistory)
     {
         this.profiler = profiler;
         this.portalSite = portalSite;
+        this.pageLayoutComponent = pageLayoutComponent;
         this.requestFallback = requestFallback;
         this.useHistory = useHistory;
     }
@@ -122,12 +132,13 @@
      *
      * @param profiler profiler component reference
      * @param portalSite portal site component reference
+     * @param pageLayoutComponent page layout component reference
      * @param requestFallback flag to enable root folder fallback
      */
-    public ProfilerValveImpl(Profiler profiler, PortalSite portalSite, 
+    public ProfilerValveImpl(Profiler profiler, PortalSite portalSite, PageLayoutComponent pageLayoutComponent,
                              boolean requestFallback)
     {
-        this(profiler, portalSite, requestFallback, true);
+        this(profiler, portalSite, pageLayoutComponent, requestFallback, true);
     }
 
     /**
@@ -135,10 +146,11 @@
      *
      * @param profiler profiler component reference
      * @param portalSite portal site component reference
+     * @param pageLayoutComponent page layout component reference
      */
-    public ProfilerValveImpl(Profiler profiler, PortalSite portalSite)
+    public ProfilerValveImpl(Profiler profiler, PortalSite portalSite, PageLayoutComponent pageLayoutComponent)
     {
-        this(profiler, portalSite, true, true);
+        this(profiler, portalSite, pageLayoutComponent, true, true);
     }
     
     /*
@@ -177,7 +189,7 @@
             }
 
             // get specified or default locators for the current user,
-            // falling back to global defaults and, if necessary, explicity
+            // falling back to global defaults and, if necessary, explicitly
             // fallback to 'page' profile locators
             if ( locators == null )
             {
@@ -237,11 +249,13 @@
                 // context here and in subsequent valves/decorators
                 // latently selects the page and builds menus from the
                 // user site view using the request context locators;
-                // the managed page accesed here is the raw selected page
+                // the managed page accessed here is the raw selected page
                 // as returned by the PageManager component; accessing
                 // the managed page here selects the current page for the
                 // request
-                request.setPage(new ContentPageImpl(requestContext.getManagedPage()));
+                Page managedPage = requestContext.getManagedPage();
+                ContentPage contentPage = pageLayoutComponent.newContentPage(managedPage);
+                request.setPage(contentPage);
                 request.setProfileLocators(requestContext.getLocators());
                 
                 request.setAttribute(PortalReservedParameters.PAGE_EDIT_ACCESS_ATTRIBUTE,getPageActionAccess(request));                
@@ -313,7 +327,7 @@
      */
     protected PageActionAccess getPageActionAccess(RequestContext requestContext)
     { 
-        Page page = requestContext.getPage();
+        ContentPage page = requestContext.getPage();
         String key = page.getId();
         boolean loggedOn = requestContext.getRequest().getUserPrincipal() != null;
         boolean anonymous = !loggedOn;

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/profiler/impl/RefreshUserHomepageValveImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/profiler/impl/RefreshUserHomepageValveImpl.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/profiler/impl/RefreshUserHomepageValveImpl.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/profiler/impl/RefreshUserHomepageValveImpl.java Wed Nov 18 18:24:48 2009
@@ -19,6 +19,7 @@
 import java.security.Principal;
 
 import org.apache.jetspeed.PortalReservedParameters;
+import org.apache.jetspeed.layout.PageLayoutComponent;
 import org.apache.jetspeed.login.LoginConstants;
 import org.apache.jetspeed.om.folder.Folder;
 import org.apache.jetspeed.om.folder.FolderNotFoundException;
@@ -61,13 +62,16 @@
      *
      * @param profiler profiler component reference
      * @param portalSite portal site component reference
+     * @param pageLayoutComponent page layout component reference
      * @param requestFallback flag to enable root folder fallback
      * @param useHistory flag to enable selection of last visited folder page
      * @param pageManager pageManagerComponent reference
      */
-    public RefreshUserHomepageValveImpl(Profiler profiler, PortalSite portalSite, boolean requestFallback, boolean useHistoryPageManager, PageManager pageManager, UserManager userManager)
+    public RefreshUserHomepageValveImpl(Profiler profiler, PortalSite portalSite, PageLayoutComponent pageLayoutComponent,
+                                        boolean requestFallback, boolean useHistoryPageManager, PageManager pageManager,
+                                        UserManager userManager)
     {
-        super(profiler, portalSite, requestFallback, useHistoryPageManager);
+        super(profiler, portalSite, pageLayoutComponent, requestFallback, useHistoryPageManager);
         this.pageManager = pageManager;
         this.userManager = userManager;
     }

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/request/JetspeedRequestContext.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/request/JetspeedRequestContext.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/request/JetspeedRequestContext.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/request/JetspeedRequestContext.java Wed Nov 18 18:24:48 2009
@@ -35,15 +35,15 @@
 import org.apache.commons.collections.list.TreeList;
 import org.apache.jetspeed.Jetspeed;
 import org.apache.jetspeed.PortalReservedParameters;
-import org.apache.jetspeed.aggregator.impl.PortletAggregatorFragmentImpl;
 import org.apache.jetspeed.capabilities.CapabilityMap;
 import org.apache.jetspeed.container.ContainerConstants;
 import org.apache.jetspeed.container.PortletWindow;
 import org.apache.jetspeed.container.url.PortalURL;
+import org.apache.jetspeed.layout.PageLayoutComponent;
 import org.apache.jetspeed.om.page.ContentFragment;
-import org.apache.jetspeed.om.page.ContentFragmentImpl;
+import org.apache.jetspeed.om.page.impl.ContentFragmentImpl;
 import org.apache.jetspeed.om.page.ContentPage;
-import org.apache.jetspeed.om.page.ContentPageImpl;
+import org.apache.jetspeed.om.page.impl.ContentPageImpl;
 import org.apache.jetspeed.om.page.Fragment;
 import org.apache.jetspeed.om.portlet.Language;
 import org.apache.jetspeed.om.portlet.PortletDefinition;
@@ -566,7 +566,7 @@
         this.response = response;
     }
     
-    public ContentPage locatePage(Profiler profiler, String nonProfiledPath)
+    public ContentPage locatePage(Profiler profiler, PageLayoutComponent pageLayoutComponent, String nonProfiledPath)
     {
         try
         {
@@ -583,7 +583,7 @@
             }               
             PortalSiteSessionContext sessionContext = (PortalSiteSessionContext)getSessionAttribute(ProfilerValveImpl.PORTAL_SITE_SESSION_CONTEXT_ATTR_KEY);
             PortalSiteRequestContext requestContext = sessionContext.newRequestContext(locators, true, true);
-            ContentPage cpage = new ContentPageImpl(requestContext.getManagedPage());
+            ContentPage cpage = pageLayoutComponent.newContentPage(requestContext.getManagedPage());
             //System.out.println("page is " + cpage.getPath());
             this.setPage(realPage);            
             this.setPath(pathSave);
@@ -645,8 +645,8 @@
         if (window == null)
         {
             // ensure RootContentFragment is initialized
-            getPage().getRootContentFragment(); 
-            ContentFragment fragment = getPage().getContentFragmentById(windowId);
+            getPage().getRootFragment(); 
+            ContentFragment fragment = getPage().getFragmentById(windowId);
             if (fragment == null)
             {
                 window = getInstantlyCreatedPortletWindow(windowId, null, false);
@@ -726,10 +726,11 @@
         
         if (portletUniqueName != null)
         {
-            Fragment fragment = new PortletAggregatorFragmentImpl(windowId);
+            // dynamically create instantly rendered content fragment and window
+            ContentFragmentImpl fragment = new ContentFragmentImpl(windowId, true);
             fragment.setType(Fragment.PORTLET);
             fragment.setName(portletUniqueName);
-            window = createPortletWindow(new ContentFragmentImpl(fragment, new HashMap(), true));
+            window = createPortletWindow(fragment);
             
             if (register && !registered && window.isValid())
             {
@@ -817,7 +818,7 @@
     public List<KeyValue<String, HeadElement>> getMergedHeadElements()
     {
         ContentPage page = getPage();
-        ContentFragment root = page.getRootContentFragment();
+        ContentFragment root = page.getRootFragment();
         List<KeyValue<String, HeadElement>> headElements = getPortletWindow(root).getHeadElements();
         
         HttpSession session = getRequest().getSession();

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/ui/Jetui.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/ui/Jetui.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/ui/Jetui.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/ui/Jetui.java Wed Nov 18 18:24:48 2009
@@ -30,7 +30,6 @@
 import org.apache.jetspeed.headerresource.HeaderResource;
 import org.apache.jetspeed.headerresource.HeaderResourceFactory;
 import org.apache.jetspeed.om.page.ContentFragment;
-import org.apache.jetspeed.om.page.Fragment;
 import org.apache.jetspeed.pipeline.PipelineException;
 import org.apache.jetspeed.portlet.HeadElement;
 import org.apache.jetspeed.portlet.HeaderPhaseSupportConstants;
@@ -67,7 +66,7 @@
             request.setAttribute("jetui", this);
             if (maximized == null)
             {
-                Fragment rootFragment = request.getPage().getRootFragment();
+                ContentFragment rootFragment = request.getPage().getRootFragment();
                 String jetspeedLayout = rootFragment.getName();
                 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                 // BOGUS: I would prefer to put all layout information directly in PSML, not in portlet.xml, right now its mixed
@@ -220,4 +219,4 @@
         }
         return map;
     }
-}
\ No newline at end of file
+}

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/ui/JetuiPage.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/ui/JetuiPage.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/ui/JetuiPage.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/ui/JetuiPage.java Wed Nov 18 18:24:48 2009
@@ -21,8 +21,8 @@
 import java.util.List;
 import java.util.Vector;
 
-import org.apache.jetspeed.om.page.Fragment;
-import org.apache.jetspeed.om.page.Page;
+import org.apache.jetspeed.om.page.ContentFragment;
+import org.apache.jetspeed.om.page.ContentPage;
 
 /**
  * Represents a page in a row/column oriented layout 
@@ -33,10 +33,10 @@
 public class JetuiPage implements Serializable
 {
     private static final long serialVersionUID = 1L;
-    private Vector<Fragment> columns = null;
+    private Vector<ContentFragment> columns = null;
     private int numberOfColumns = 1;
     
-    public JetuiPage(Page page)
+    public JetuiPage(ContentPage page)
     {
         String jetspeedLayout = page.getRootFragment().getName();
         if (jetspeedLayout.indexOf("Two") > -1)
@@ -47,16 +47,16 @@
         {
             numberOfColumns = 3;
         }    
-        columns = new Vector<Fragment>(numberOfColumns);
+        columns = new Vector<ContentFragment>(numberOfColumns);
         buildColumns(page.getRootFragment());
     }
     
-    private boolean buildColumns(Fragment f)
+    private boolean buildColumns(ContentFragment f)
     {
-        List<Fragment> fragments = f.getFragments();
+        List<ContentFragment> fragments = f.getFragments();
         if (fragments != null && !fragments.isEmpty())
         {
-            for (Fragment child : fragments)
+            for (ContentFragment child : fragments)
             {
                 boolean found = buildColumns(child);
                 if (found)
@@ -66,9 +66,9 @@
         return false;
     }
 
-    protected final int getColumn(Fragment fragment)
+    protected final int getColumn(ContentFragment fragment)
     {
-        String propertyValue = fragment.getProperty(Fragment.COLUMN_PROPERTY_NAME);
+        String propertyValue = fragment.getProperty(ContentFragment.COLUMN_PROPERTY_NAME);
         if (propertyValue != null)
         {
             int columnNumber = Integer.parseInt(propertyValue);

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/velocity/JetspeedPowerToolImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/velocity/JetspeedPowerToolImpl.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/velocity/JetspeedPowerToolImpl.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/velocity/JetspeedPowerToolImpl.java Wed Nov 18 18:24:48 2009
@@ -46,7 +46,7 @@
 import org.apache.jetspeed.locator.TemplateLocator;
 import org.apache.jetspeed.locator.TemplateLocatorException;
 import org.apache.jetspeed.om.page.ContentFragment;
-import org.apache.jetspeed.om.page.Page;
+import org.apache.jetspeed.om.page.ContentPage;
 import org.apache.jetspeed.portlet.HeadElement;
 import org.apache.jetspeed.portlet.HeaderPhaseSupportConstants;
 import org.apache.jetspeed.request.RequestContext;
@@ -320,7 +320,7 @@
      * 
      * @return
      */
-    public Page getPage()
+    public ContentPage getPage()
     {
         checkState();
         // return (Page)

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/velocity/JetspeedVelocityViewServlet.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/velocity/JetspeedVelocityViewServlet.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/velocity/JetspeedVelocityViewServlet.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/velocity/JetspeedVelocityViewServlet.java Wed Nov 18 18:24:48 2009
@@ -48,8 +48,8 @@
 import org.apache.jetspeed.locator.TemplateDescriptor;
 import org.apache.jetspeed.locator.TemplateLocator;
 import org.apache.jetspeed.locator.TemplateLocatorException;
-import org.apache.jetspeed.om.page.Fragment;
-import org.apache.jetspeed.om.page.Page;
+import org.apache.jetspeed.om.page.ContentFragment;
+import org.apache.jetspeed.om.page.ContentPage;
 import org.apache.jetspeed.request.RequestContext;
 import org.apache.portals.bridges.velocity.BridgesVelocityViewServlet;
 import org.apache.velocity.Template;
@@ -392,7 +392,7 @@
         {
             // get layout type and decoration, fallback to
             // page default decorations
-            Fragment layout = (Fragment) renderRequest.getAttribute(JetspeedVelocityPowerTool.LAYOUT_ATTR);
+            ContentFragment layout = (ContentFragment) renderRequest.getAttribute(JetspeedVelocityPowerTool.LAYOUT_ATTR);
             if (layout == null)
             {
                // layout = (Fragment) renderRequest.getAttribute(JetspeedPowerTool.FRAGMENT_ATTR);
@@ -403,7 +403,7 @@
             if (layoutDecoration == null)
             {
                 //Page page = (Page) renderRequest.getAttribute(PortalReservedParameters.PAGE_ATTRIBUTE_KEY);
-                Page page = requestContext.getPage();
+                ContentPage page = requestContext.getPage();
                 layoutDecoration = page.getEffectiveDefaultDecorator(layoutType);
             }
             

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/assembly/page-manager.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/assembly/page-manager.xml?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/assembly/page-manager.xml (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/assembly/page-manager.xml Wed Nov 18 18:24:48 2009
@@ -20,7 +20,7 @@
     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
     
   <!-- PageManager -->
-  <bean id="PsmlDocumentHandler"      
+  <bean id="PsmlDocumentHandler"
        class="org.apache.jetspeed.page.document.psml.CastorFileSystemDocumentHandler" >         
        <constructor-arg index="0"><ref bean="IdGenerator"/></constructor-arg>
        <constructor-arg index="1"><value>/JETSPEED-INF/castor/page-mapping.xml</value></constructor-arg>
@@ -30,6 +30,36 @@
        <constructor-arg index="5" ><ref bean="PageFileCache"/></constructor-arg>
   </bean>
   
+  <bean id="TpsmlDocumentHandler"
+       class="org.apache.jetspeed.page.document.psml.CastorFileSystemDocumentHandler" >         
+       <constructor-arg index="0"><ref bean="IdGenerator"/></constructor-arg>
+       <constructor-arg index="1"><value>/JETSPEED-INF/castor/page-mapping.xml</value></constructor-arg>
+       <constructor-arg index="2"><value>.tpsml</value></constructor-arg>
+       <constructor-arg index="3" ><value>org.apache.jetspeed.om.page.psml.PageTemplateImpl</value></constructor-arg>       
+       <constructor-arg index="4" ><value>${applicationRoot}/src/test/testdata/pages/pages</value></constructor-arg>
+       <constructor-arg index="5" ><ref bean="PageFileCache"/></constructor-arg>
+  </bean>
+  
+  <bean id="DpsmlDocumentHandler"
+       class="org.apache.jetspeed.page.document.psml.CastorFileSystemDocumentHandler" >         
+       <constructor-arg index="0"><ref bean="IdGenerator"/></constructor-arg>
+       <constructor-arg index="1"><value>/JETSPEED-INF/castor/page-mapping.xml</value></constructor-arg>
+       <constructor-arg index="2"><value>.dpsml</value></constructor-arg>
+       <constructor-arg index="3" ><value>org.apache.jetspeed.om.page.psml.DynamicPageImpl</value></constructor-arg>       
+       <constructor-arg index="4" ><value>${applicationRoot}/src/test/testdata/pages/pages</value></constructor-arg>
+       <constructor-arg index="5" ><ref bean="PageFileCache"/></constructor-arg>
+  </bean>
+  
+  <bean id="FpsmlDocumentHandler"
+       class="org.apache.jetspeed.page.document.psml.CastorFileSystemDocumentHandler" >         
+       <constructor-arg index="0"><ref bean="IdGenerator"/></constructor-arg>
+       <constructor-arg index="1"><value>/JETSPEED-INF/castor/page-mapping.xml</value></constructor-arg>
+       <constructor-arg index="2"><value>.fpsml</value></constructor-arg>
+       <constructor-arg index="3" ><value>org.apache.jetspeed.om.page.psml.FragmentDefinitionImpl</value></constructor-arg>       
+       <constructor-arg index="4" ><value>${applicationRoot}/src/test/testdata/pages/pages</value></constructor-arg>
+       <constructor-arg index="5" ><ref bean="PageFileCache"/></constructor-arg>
+  </bean>
+  
   <bean id="LinkDocumentHandler"       
        class="org.apache.jetspeed.page.document.psml.CastorFileSystemDocumentHandler" >         
        <constructor-arg index="0"><ref bean="IdGenerator"/></constructor-arg>
@@ -67,6 +97,15 @@
           <entry key=".psml">
             <ref bean="PsmlDocumentHandler" />
           </entry>
+          <entry key=".tpsml">
+            <ref bean="TpsmlDocumentHandler" />
+          </entry>
+          <entry key=".dpsml">
+            <ref bean="DpsmlDocumentHandler" />
+          </entry>
+          <entry key=".fpsml">
+            <ref bean="FpsmlDocumentHandler" />
+          </entry>
           <entry key=".link">
             <ref bean="LinkDocumentHandler" />
           </entry>  

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/assembly/test-layout-api.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/assembly/test-layout-api.xml?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/assembly/test-layout-api.xml (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/assembly/test-layout-api.xml Wed Nov 18 18:24:48 2009
@@ -32,7 +32,10 @@
         class="org.apache.jetspeed.layout.impl.PortletActionSecurityPathBehavior">
         <constructor-arg index='0'>
         <ref bean="org.apache.jetspeed.page.PageManager"/>        
-        </constructor-arg>    	
+        </constructor-arg>
+        <constructor-arg index='1'>
+        <ref bean="org.apache.jetspeed.layout.PageLayoutComponent"/>
+        </constructor-arg>
         </bean-->
     
     <bean id="mockPortletRegistry" class="org.apache.jetspeed.layout.MockPortletRegistryFactory" factory-method="createMockPortletRegistry"/>
@@ -249,4 +252,4 @@
         </constructor-arg>
     </bean>
     
-</beans>
\ No newline at end of file
+</beans>

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/assembly/test-layout-constraints-api.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/assembly/test-layout-constraints-api.xml?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/assembly/test-layout-constraints-api.xml (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/assembly/test-layout-constraints-api.xml Wed Nov 18 18:24:48 2009
@@ -33,6 +33,9 @@
     <constructor-arg index='0'>
         <ref bean="org.apache.jetspeed.page.PageManager"/>        
     </constructor-arg>    	
+    <constructor-arg index='1'>
+        <ref bean="org.apache.jetspeed.layout.PageLayoutComponent"/>
+    </constructor-arg>
 </bean-->
 
 <bean id="AjaxSecurityConstraints"
@@ -83,4 +86,4 @@
 	</bean>
   
     
-</beans>
\ No newline at end of file
+</beans>

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/aggregator/TestAggregator.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/aggregator/TestAggregator.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/aggregator/TestAggregator.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/aggregator/TestAggregator.java Wed Nov 18 18:24:48 2009
@@ -36,8 +36,8 @@
 import org.apache.jetspeed.container.state.NavigationalStateComponent;
 import org.apache.jetspeed.engine.Engine;
 import org.apache.jetspeed.factory.PortletFactory;
+import org.apache.jetspeed.layout.PageLayoutComponent;
 import org.apache.jetspeed.mocks.ResourceLocatingServletContext;
-import org.apache.jetspeed.om.page.ContentPageImpl;
 import org.apache.jetspeed.om.page.Page;
 import org.apache.jetspeed.om.portlet.PortletApplication;
 import org.apache.jetspeed.page.PageManager;
@@ -197,8 +197,10 @@
                         PageManager pageManager = 
                             (PageManager) engine.getComponentManager().getComponent(PageManager.class);
                         Page page = pageManager.getPage(testPage);
+                        PageLayoutComponent pageLayoutComponent = 
+                            (PageLayoutComponent) engine.getComponentManager().getComponent(PageLayoutComponent.class);
                         assertNotNull(page);
-                        requestContext.setPage(new ContentPageImpl(page));
+                        requestContext.setPage(pageLayoutComponent.newContentPage(page));
 
                         if (!isParallelMode) {
                             pageAggregator.build(requestContext);

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/container/state/MockRequestContext.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/container/state/MockRequestContext.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/container/state/MockRequestContext.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/container/state/MockRequestContext.java Wed Nov 18 18:24:48 2009
@@ -32,6 +32,7 @@
 import org.apache.jetspeed.capabilities.CapabilityMap;
 import org.apache.jetspeed.container.PortletWindow;
 import org.apache.jetspeed.container.url.PortalURL;
+import org.apache.jetspeed.layout.PageLayoutComponent;
 import org.apache.jetspeed.om.page.ContentFragment;
 import org.apache.jetspeed.om.page.ContentPage;
 import org.apache.jetspeed.om.portlet.Language;
@@ -318,9 +319,9 @@
     }
 
     /* (non-Javadoc)
-     * @see org.apache.jetspeed.request.RequestContext#locatePage(org.apache.jetspeed.profiler.Profiler, java.lang.String)
+     * @see org.apache.jetspeed.request.RequestContext#locatePage(org.apache.jetspeed.profiler.Profiler, org.apache.jetspeed.layout.PageLayoutComponent, java.lang.String)
      */
-    public ContentPage locatePage(Profiler profiler, String nonProfiledPath)
+    public ContentPage locatePage(Profiler profiler, PageLayoutComponent pageLayoutComponent, String nonProfiledPath)
     {
         // TODO Auto-generated method stub
         return null;

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/decoration/TestDecorations.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/decoration/TestDecorations.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/decoration/TestDecorations.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/decoration/TestDecorations.java Wed Nov 18 18:24:48 2009
@@ -27,8 +27,8 @@
 import javax.servlet.http.HttpSession;
 
 import org.apache.jetspeed.PortalReservedParameters;
-import org.apache.jetspeed.om.page.Fragment;
-import org.apache.jetspeed.om.page.Page;
+import org.apache.jetspeed.om.page.ContentFragment;
+import org.apache.jetspeed.om.page.ContentPage;
 import org.apache.jetspeed.request.RequestContext;
 import org.apache.jetspeed.util.Path;
 import org.jmock.Mock;
@@ -45,15 +45,15 @@
     private PathResolverCache prc;
     private ResourceValidator rv;
     private Properties config;
-    private Page page;
+    private ContentPage page;
     private RequestContext requestContext;
     private Mock pageMock;
     private Mock factoryMock;
     private Mock fragmentMock;
     private Mock requestContextMock;
-    private Fragment fragment;
+    private ContentFragment fragment;
     private Mock childFragmentMock;
-    private Fragment childFragment;
+    private ContentFragment childFragment;
     private Mock layoutMock;
     private LayoutDecoration layout;
     private Mock portletDecorMock;
@@ -62,16 +62,16 @@
 
     protected void themeInitExpectations()
     {
-        pageMock = new Mock(Page.class);
-        page = (Page) pageMock.proxy();
+        pageMock = new Mock(ContentPage.class);
+        page = (ContentPage) pageMock.proxy();
         factoryMock = new Mock(DecorationFactory.class);
         factory = (DecorationFactory) factoryMock.proxy();
         requestContextMock = new Mock(RequestContext.class);
         requestContext = (RequestContext) requestContextMock.proxy();
-        fragmentMock = new Mock(Fragment.class);
-        fragment = (Fragment) fragmentMock.proxy();
-        childFragmentMock = new Mock(Fragment.class);
-        childFragment = (Fragment) childFragmentMock.proxy();
+        fragmentMock = new Mock(ContentFragment.class);
+        fragment = (ContentFragment) fragmentMock.proxy();
+        childFragmentMock = new Mock(ContentFragment.class);
+        childFragment = (ContentFragment) childFragmentMock.proxy();
         layoutMock = new Mock(LayoutDecoration.class);
         layout = (LayoutDecoration) layoutMock.proxy();
         portletDecorMock = new Mock(PortletDecoration.class);
@@ -232,9 +232,9 @@
 
         expectAndReturn(fragmentMock, "getDecorator", "myLayoutDecorator");
          
-        expectAndReturn(fragmentMock, "getType", Fragment.LAYOUT);
+        expectAndReturn(fragmentMock, "getType", ContentFragment.LAYOUT);
 
-        expectAndReturn(childFragmentMock, "getType", Fragment.PORTLET);
+        expectAndReturn(childFragmentMock, "getType", ContentFragment.PORTLET);
         
 //        expectAndReturn(pageMock, "getRootFragment", fragment);
         
@@ -249,7 +249,7 @@
         expectAndReturn(atLeastOnce(), servletContextMock, "getResourceAsStream",new Constraint[] {eq("/decorations/portlet/myPortletDecoration/decorator.properties")}, is2);
         expectAndReturn(atLeastOnce(), servletContextMock, "getResourceAsStream",new Constraint[] {eq("/decorations/layout/myLayoutDecorator/decoratordesktop.properties")}, is1);
         expectAndReturn(atLeastOnce(), servletContextMock, "getResourceAsStream",new Constraint[] {eq("/decorations/portlet/myPortletDecoration/decoratordesktop.properties")}, is2);
-                
+        
         Mock servletRequestMock = new Mock(HttpServletRequest.class);
         Mock sessionMock = new Mock(HttpSession.class);
         

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/layout/FragmentUtil.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/layout/FragmentUtil.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/layout/FragmentUtil.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/layout/FragmentUtil.java Wed Nov 18 18:24:48 2009
@@ -19,10 +19,8 @@
 import javax.security.auth.Subject;
 
 import org.apache.jetspeed.om.page.ContentPage;
-import org.apache.jetspeed.om.page.Fragment;
-import org.apache.jetspeed.om.page.Page;
-import org.apache.jetspeed.om.page.ContentPageImpl;
-import org.apache.jetspeed.om.page.psml.PageImpl;
+import org.apache.jetspeed.om.page.impl.ContentPageImpl;
+import org.apache.jetspeed.om.page.impl.ContentFragmentImpl;
 import org.apache.jetspeed.request.JetspeedRequestContext;
 import org.apache.jetspeed.request.RequestContext;
 import org.apache.jetspeed.request.RequestContextComponent;
@@ -48,8 +46,7 @@
         // Build a request object and populate it with fragments
         RequestContext a_oRC = setupRequestContext("remove", "1234", "0", "0");
 
-        ContentPage a_oContentPage = new ContentPageImpl(setupPage());
-        a_oRC.setPage(a_oContentPage);
+        a_oRC.setPage(setupPage());
 
         return a_oRC;
     }
@@ -95,47 +92,42 @@
         
         a_oRC.setSubject(new Subject());
         
-        Page a_oPage = setupPage();
-        ContentPage a_oContentPage = new ContentPageImpl(a_oPage);
-
-        a_oRC.setPage(a_oContentPage);
+        a_oRC.setPage(setupPage());
 
         return a_oRC;
     }
 
     // Helper method
-    public static Page setupPage()
+    public static ContentPage setupPage()
     {
         // Prepare some fragments
-        Fragment a_oLayout = buildFragment("layout", "6", "layout", 0, 0);
-        Fragment a_oFrag1 = buildFragment("frag1", "1", "portlet", 0, 0);
-        Fragment a_oFrag2 = buildFragment("frag2", "2", "portlet", 0, 1); 
-        Fragment a_oFrag3 = buildFragment("frag3", "3", "portlet", 1, 0);
-        Fragment a_oFrag4 = buildFragment("frag4", "4", "portlet", 1, 1);
-        Fragment a_oFrag5 = buildFragment("frag5", "5", "portlet", 1, 2);
+        ContentFragmentImpl a_oLayout = buildFragment("layout", "6", "layout", 0, 0);
+        ContentFragmentImpl a_oFrag1 = buildFragment("frag1", "1", "portlet", 0, 0);
+        ContentFragmentImpl a_oFrag2 = buildFragment("frag2", "2", "portlet", 0, 1); 
+        ContentFragmentImpl a_oFrag3 = buildFragment("frag3", "3", "portlet", 1, 0);
+        ContentFragmentImpl a_oFrag4 = buildFragment("frag4", "4", "portlet", 1, 1);
+        ContentFragmentImpl a_oFrag5 = buildFragment("frag5", "5", "portlet", 1, 2);
         
-        LocalFragmentImpl a_oLocalLayout = (LocalFragmentImpl) a_oLayout;
-        a_oLocalLayout.addFragment(a_oFrag1);
-        a_oLocalLayout.addFragment(a_oFrag2);
-        a_oLocalLayout.addFragment(a_oFrag3);
-        a_oLocalLayout.addFragment(a_oFrag4);
-        a_oLocalLayout.addFragment(a_oFrag5);
+        a_oLayout.getFragments().add(a_oFrag1);
+        a_oLayout.getFragments().add(a_oFrag2);
+        a_oLayout.getFragments().add(a_oFrag3);
+        a_oLayout.getFragments().add(a_oFrag4);
+        a_oLayout.getFragments().add(a_oFrag5);
 
-        Page a_oPage = new PageImpl();
+        ContentPageImpl a_oPage = new ContentPageImpl();
         a_oPage.setRootFragment(a_oLayout);
 
         return a_oPage;
     }
 
-    public static Fragment buildFragment(String p_sName, String p_sId,
+    public static ContentFragmentImpl buildFragment(String p_sName, String p_sId,
             String p_sType, int p_iCol, int p_iRow)
     {
-        LocalFragmentImpl a_oFrag = new LocalFragmentImpl();
+        ContentFragmentImpl a_oFrag = new ContentFragmentImpl(p_sId);
         a_oFrag.setName(p_sName);
         a_oFrag.setType(p_sType);
         a_oFrag.setLayoutColumn(p_iCol);
         a_oFrag.setLayoutRow(p_iRow);
-        a_oFrag.setId(p_sId);
         return a_oFrag;
     }
     

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/layout/TestLayout.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/layout/TestLayout.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/layout/TestLayout.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/layout/TestLayout.java Wed Nov 18 18:24:48 2009
@@ -287,7 +287,7 @@
 
             valve.invoke(rc, null);
 
-            // Take a look at the response to verify a failiure
+            // Take a look at the response to verify a failure
             TestLayout.assertTrue("couldn't find value", FragmentUtil.findValue(rc,
                     "success"));
             TestLayout.assertTrue("couldn't find value", FragmentUtil.findValue(rc,

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/layout/TestPortletPlacement.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/layout/TestPortletPlacement.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/layout/TestPortletPlacement.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/test/java/org/apache/jetspeed/layout/TestPortletPlacement.java Wed Nov 18 18:24:48 2009
@@ -21,7 +21,7 @@
 import org.apache.jetspeed.components.portletregistry.PortletRegistry;
 import org.apache.jetspeed.layout.impl.CoordinateImpl;
 import org.apache.jetspeed.layout.impl.PortletPlacementContextImpl;
-import org.apache.jetspeed.om.page.Fragment;
+import org.apache.jetspeed.om.page.ContentFragment;
 import org.apache.jetspeed.request.RequestContext;
 
 /**
@@ -56,7 +56,7 @@
             assertEquals(a_iNumRows, 3);
 
             // Check the fragments
-            Fragment a_oFrag = ppc
+            ContentFragment a_oFrag = ppc
                     .getFragmentAtNewCoordinate(new CoordinateImpl(0, 0, 0, 0));
             assertNotNull("null fragment found at 0,0", a_oFrag);
             assertEquals(a_oFrag.getId(), "1");
@@ -102,7 +102,7 @@
             PortletPlacementContext ppc = new PortletPlacementContextImpl(requestContext.getPage(),portletRegistry);
 
             // Check the fragments
-            Fragment a_oFrag = ppc.getFragmentById("1");
+            ContentFragment a_oFrag = ppc.getFragmentById("1");
             assertNotNull("null fragment with id 1", a_oFrag);
             assertEquals(a_oFrag.getId(), "1");
             assertEquals(a_oFrag.getName(), "frag1");
@@ -141,7 +141,7 @@
         {
             PortletPlacementContext ppc = new PortletPlacementContextImpl(requestContext.getPage(),portletRegistry);
 
-            Fragment a_oFrag = ppc
+            ContentFragment a_oFrag = ppc
                     .getFragmentAtNewCoordinate(new CoordinateImpl(0, 0, 0, 0));
 
             Coordinate a_oCoordinate = ppc.remove(a_oFrag);
@@ -168,7 +168,7 @@
         {
             PortletPlacementContext ppc = new PortletPlacementContextImpl(requestContext.getPage(),portletRegistry);
 
-            Fragment a_oFrag = ppc
+            ContentFragment a_oFrag = ppc
                     .getFragmentAtNewCoordinate(new CoordinateImpl(0, 0, 0, 0));
 
             Coordinate a_oCoordinate = ppc.moveAbsolute(a_oFrag, new CoordinateImpl(
@@ -203,7 +203,7 @@
         {
             PortletPlacementContext ppc = new PortletPlacementContextImpl(requestContext.getPage(),portletRegistry);
 
-            Fragment a_oFrag = ppc
+            ContentFragment a_oFrag = ppc
                     .getFragmentAtNewCoordinate(new CoordinateImpl(0, 0, 0, 1));
 
             Coordinate a_oCoordinate = ppc.moveUp(a_oFrag);

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-profiler/src/main/java/org/apache/jetspeed/profiler/rules/impl/PathResolver.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-profiler/src/main/java/org/apache/jetspeed/profiler/rules/impl/PathResolver.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-profiler/src/main/java/org/apache/jetspeed/profiler/rules/impl/PathResolver.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-profiler/src/main/java/org/apache/jetspeed/profiler/rules/impl/PathResolver.java Wed Nov 18 18:24:48 2009
@@ -16,7 +16,7 @@
  */
 package org.apache.jetspeed.profiler.rules.impl;
 
-import org.apache.jetspeed.om.page.Page;
+import org.apache.jetspeed.om.page.ContentPage;
 import org.apache.jetspeed.profiler.rules.RuleCriterion;
 import org.apache.jetspeed.profiler.rules.RuleCriterionResolver;
 import org.apache.jetspeed.request.RequestContext;
@@ -35,7 +35,7 @@
     public String resolve(RequestContext context, RuleCriterion criterion)
     {        
         String path = null;
-        Page page = context.getPage();
+        ContentPage page = context.getPage();
         
         if(page != null)
         {



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