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 [16/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/jetspeed-commons/src/main/java/org/apache/jetspeed/portlets/layout/ColumnLayout.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/portlets/layout/ColumnLayout.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/portlets/layout/ColumnLayout.java (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/portlets/layout/ColumnLayout.java Wed Nov 18 18:24:48 2009
@@ -30,7 +30,7 @@
 import java.util.SortedMap;
 import java.util.TreeMap;
 
-import org.apache.jetspeed.om.page.Fragment;
+import org.apache.jetspeed.om.page.ContentFragment;
 
 /**
  * <h2>Basics</h2>
@@ -52,7 +52,7 @@
  * 
  * <h2>Layout Events</h2>
  * <p>
- * When any move*() method is invoked and a portlet is actually moved (see indvidual
+ * When any move*() method is invoked and a portlet is actually moved (see individual
  * methods for what causes these circumstances), an initial LayoutEvent is dispatched.  
  * This may cause a cascade of LayoutEvents to be fired in turn if the movement of the
  * target fragment cause other fragments to be repositioned.  In this case a LayoutEvent
@@ -82,16 +82,16 @@
     private final int numberOfColumns;
     
     /** SortedMap of Columns (which are also sorted maps */
-    private final SortedMap<Integer, SortedMap<Integer, Fragment>> columns;
+    private final SortedMap<Integer, SortedMap<Integer, ContentFragment>> columns;
     
-    /** Width settings for eacah column */
+    /** Width settings for each column */
     private final String[] columnWidths;
     
-    /** Efficent way to always be aware of the next available row in a column */
+    /** Efficient way to always be aware of the next available row in a column */
     private final int[] nextRowNumber;
     
     /** maps Fragments (key) to it's current LayoutCoordinate (value) in this layout */
-    private final Map<Fragment, LayoutCoordinate> coordinates;
+    private final Map<ContentFragment, LayoutCoordinate> coordinates;
     
     /** All of the LayoutEventListeners registered to this layout */
     private final List<LayoutEventListener> eventListeners;
@@ -102,7 +102,7 @@
      *            the maximum number of columns this layout will have.
      * @param layoutType
      *            this value corresponds to the property settings of the
-     *            fragments within your psml. Layout type allows segration of
+     *            fragments within your psml. Layout type allows segregation of
      *            property settings based on the type of layout in use. This
      *            effectively allows for the interchange of multiple layout
      *            formats without one format effecting the settings of another.
@@ -117,12 +117,12 @@
         this.columnWidths = columnWidths;
         eventListeners = new ArrayList<LayoutEventListener>();
 
-        columns = new TreeMap<Integer, SortedMap<Integer, Fragment>>();
-        coordinates = new HashMap<Fragment, LayoutCoordinate>();
+        columns = new TreeMap<Integer, SortedMap<Integer, ContentFragment>>();
+        coordinates = new HashMap<ContentFragment, LayoutCoordinate>();
 
         for (int i = 0; i < numberOfColumns; i++)
         {
-            columns.put(new Integer(i), new TreeMap<Integer, Fragment>());
+            columns.put(new Integer(i), new TreeMap<Integer, ContentFragment>());
         }
 
         nextRowNumber = new int[numberOfColumns];
@@ -135,7 +135,7 @@
     
     /**
      * Same as ColumnLayout(int numberOfColumns, String layoutType) but also
-     * supplies a Collection of fragmetns to initially populate the layout
+     * supplies a Collection of fragments to initially populate the layout
      * with.  Adding these fragments <strong>WILL NOT</strong> cause
      * a LayoutEvent to be dispatched.
      * 
@@ -144,7 +144,7 @@
      *            the maximum number of columns this layout will have.
      * @param layoutType
      *            this value corresponds to the property settings of the
-     *            fragments within your psml. Layout type allows segration of
+     *            fragments within your psml. Layout type allows segregation of
      *            property settings based on the type of layout in use. This
      *            effectively allows for the interchange of multiple layout
      *            formats without one format effecting the settings of another.
@@ -154,15 +154,15 @@
      *            are used.
      * @throws LayoutEventException
      */
-    public ColumnLayout(int numberOfColumns, String layoutType, Collection<Fragment> fragments, String[] columnWidths) throws LayoutEventException
+    public ColumnLayout(int numberOfColumns, String layoutType, Collection<ContentFragment> fragments, String[] columnWidths) throws LayoutEventException
     {
         this(numberOfColumns, layoutType, columnWidths);
-        Iterator<Fragment> fragmentsItr = fragments.iterator();
+        Iterator<ContentFragment> fragmentsItr = fragments.iterator();
         try
         {
             while (fragmentsItr.hasNext())
             {
-                Fragment fragment = (Fragment) fragmentsItr.next();
+                ContentFragment fragment = (ContentFragment) fragmentsItr.next();
                 doAdd(getColumn(fragment), getRow(getColumn(fragment), fragment), fragment);
             }
         }
@@ -197,7 +197,7 @@
      * @see org.apache.jetspeed.om.page.Fragment
      * 
      */
-    public void addFragment(Fragment fragment) throws LayoutEventException
+    public void addFragment(ContentFragment fragment) throws LayoutEventException
     {
         try
         {
@@ -220,7 +220,7 @@
     
     /**
      * Adds a LayoutEventListener to this layout that will be fired any time
-     * a LayoutEvent is disaptched.
+     * a LayoutEvent is dispatched.
      * 
      * @param eventListener
      * @see LayoutEventListener
@@ -240,7 +240,7 @@
      * @throws InvalidLayoutLocationException
      *             if the column is outisde of the constraints of this layout
      */
-    public Collection<Fragment> getColumn(int columnNumber) throws InvalidLayoutLocationException
+    public Collection<ContentFragment> getColumn(int columnNumber) throws InvalidLayoutLocationException
     {
         return Collections.unmodifiableCollection(getColumnMap(columnNumber).values());
     }
@@ -314,10 +314,10 @@
      *         Collection objects) in order within this layout. All Collections
      *         are immutable.
      */
-    public Collection<Collection<Fragment>> getColumns()
+    public Collection<Collection<ContentFragment>> getColumns()
     {
-        ArrayList<Collection<Fragment>> columnList = new ArrayList<Collection<Fragment>>(getNumberOfColumns());
-        for (SortedMap<Integer, Fragment> map : columns.values())
+        ArrayList<Collection<ContentFragment>> columnList = new ArrayList<Collection<ContentFragment>>(getNumberOfColumns());
+        for (SortedMap<Integer, ContentFragment> map : columns.values())
         {
             columnList.add(Collections.unmodifiableCollection(map.values()));
         }
@@ -342,7 +342,7 @@
      * this ColumnLayout in no sepcific order.
      * @return Immutable Collection of Fragments.
      */
-    public Collection<Fragment> getFragments()
+    public Collection<ContentFragment> getFragments()
     {
         return Collections.unmodifiableCollection(coordinates.keySet());
     }
@@ -357,14 +357,14 @@
      * @throws InvalidLayoutLocationException if the coordinate lies outside the confines of this layout, i.e., the
      * <code>columnNumber</code> exceeds the max columns setting for this layout.
      */
-    public Fragment getFragmentAt(int columnNumber, int rowNumber) throws EmptyLayoutLocationException,
+    public ContentFragment getFragmentAt(int columnNumber, int rowNumber) throws EmptyLayoutLocationException,
             InvalidLayoutLocationException
     {
-        SortedMap<Integer, Fragment> column = getColumnMap(columnNumber);
+        SortedMap<Integer, ContentFragment> column = getColumnMap(columnNumber);
         Integer rowInteger = new Integer(rowNumber);
         if (column.containsKey(rowInteger))
         {
-            return (Fragment) column.get(rowInteger);
+            return (ContentFragment) column.get(rowInteger);
         }
         else
         {
@@ -385,7 +385,7 @@
      * <code>columnNumber</code> exceeds the max columns setting for this layout.
      * @see LayoutCoordinate
      */
-    public Fragment getFragmentAt(LayoutCoordinate coodinate) throws EmptyLayoutLocationException,
+    public ContentFragment getFragmentAt(LayoutCoordinate coodinate) throws EmptyLayoutLocationException,
             InvalidLayoutLocationException
     {
         return getFragmentAt(coodinate.getX(), coodinate.getY());
@@ -404,7 +404,7 @@
      * 
      * @return The last column in this layout.  The Collection is immutable.
      */
-    public Collection<Fragment> getLastColumn() 
+    public Collection<ContentFragment> getLastColumn() 
     {
         try
         {
@@ -422,7 +422,7 @@
      * 
      * @return The last column in this layout.  The Collection is immutable.
      */
-    public Collection<Fragment> getFirstColumn()
+    public Collection<ContentFragment> getFirstColumn()
     {
         try
         {
@@ -451,7 +451,7 @@
      * @throws FragmentNotInLayoutException if the specified fragment is not currently in the layout.
      * @throws LayoutEventException If a triggered LayoutEvent fails.
      */
-    public void moveRight(Fragment fragment) throws FragmentNotInLayoutException, LayoutEventException
+    public void moveRight(ContentFragment fragment) throws FragmentNotInLayoutException, LayoutEventException
     {
         LayoutCoordinate coordinate = getCoordinate(fragment);
         LayoutCoordinate newCoordinate = new LayoutCoordinate(coordinate.getX() + 1, coordinate.getY());
@@ -466,7 +466,7 @@
                 // now move the fragment below up one level.
                 try
                 {
-                    Fragment fragmentBelow = getFragmentAt(new LayoutCoordinate(coordinate.getX(), coordinate.getY() + 1));
+                    ContentFragment fragmentBelow = getFragmentAt(new LayoutCoordinate(coordinate.getX(), coordinate.getY() + 1));
                     moveUp(fragmentBelow);
                 }
                 catch (EmptyLayoutLocationException e)
@@ -476,7 +476,7 @@
             }
             catch (InvalidLayoutLocationException e)
             {
-                // This should NEVER happen as the location has already been verfied to be valid
+                // This should NEVER happen as the location has already been verified to be valid
                 throw new LayoutError("It appears this layout is corrupt and cannot correctly identify valid column locations.", e);
             }      
         }
@@ -496,7 +496,7 @@
      * @throws FragmentNotInLayoutException if the specified fragment is not currently in the layout.
      * @throws LayoutEventException If a triggered LayoutEvent fails.
      */
-    public void moveLeft(Fragment fragment) throws FragmentNotInLayoutException, LayoutEventException
+    public void moveLeft(ContentFragment fragment) throws FragmentNotInLayoutException, LayoutEventException
     {
         LayoutCoordinate coordinate = getCoordinate(fragment);
         LayoutCoordinate newCoordinate = new LayoutCoordinate(coordinate.getX() - 1, coordinate.getY());
@@ -510,7 +510,7 @@
                 // now move the fragment below up one level.
                 try
                 {
-                    Fragment fragmentBelow = getFragmentAt(new LayoutCoordinate(coordinate.getX(), coordinate.getY() + 1));
+                    ContentFragment fragmentBelow = getFragmentAt(new LayoutCoordinate(coordinate.getX(), coordinate.getY() + 1));
                     moveUp(fragmentBelow);
                 }
                 catch (EmptyLayoutLocationException e)
@@ -520,7 +520,7 @@
             }
             catch (InvalidLayoutLocationException e)
             {
-                // This should NEVER happen as the location has already been verfied to be valid
+                // This should NEVER happen as the location has already been verified to be valid
                 throw new LayoutError("It appears this layout is corrupt and cannot correctly identify valid column locations.", e);
             }
          
@@ -541,7 +541,7 @@
      * @throws FragmentNotInLayoutException if the specified fragment is not currently in the layout.
      * @throws LayoutEventException If a triggered LayoutEvent fails.
      */
-    public void moveUp(Fragment fragment) throws FragmentNotInLayoutException, LayoutEventException
+    public void moveUp(ContentFragment fragment) throws FragmentNotInLayoutException, LayoutEventException
     {
         LayoutCoordinate coordinate = getCoordinate(fragment);
         LayoutCoordinate aboveLayoutCoordinate = new LayoutCoordinate(coordinate.getX(), coordinate.getY() - 1);
@@ -573,7 +573,7 @@
                     
                     try
                     {
-                        Fragment fragmentBelow = getFragmentAt(new LayoutCoordinate(coordinate.getX(),
+                        ContentFragment fragmentBelow = getFragmentAt(new LayoutCoordinate(coordinate.getX(),
                                 coordinate.getY() + 1));
                         moveUp(fragmentBelow);
                     }
@@ -597,7 +597,7 @@
      * @throws FragmentNotInLayoutException if the specified fragment is not currently in the layout.
      * @throws LayoutEventException If a triggered LayoutEvent fails.
      */
-    public void moveDown(Fragment fragment) throws FragmentNotInLayoutException, LayoutEventException
+    public void moveDown(ContentFragment fragment) throws FragmentNotInLayoutException, LayoutEventException
     {
         LayoutCoordinate coordinate = getCoordinate(fragment);
         LayoutCoordinate newCoordinate = new LayoutCoordinate(coordinate.getX(), coordinate.getY() + 1);
@@ -612,7 +612,7 @@
                     // the best approach to move a fragment down is to actually move
                     // its neighbor underneath up
                     LayoutCoordinate aboveCoord = new LayoutCoordinate(coordinate.getX(), coordinate.getY() + 1);
-                    Fragment fragmentBelow = getFragmentAt(aboveCoord);
+                    ContentFragment fragmentBelow = getFragmentAt(aboveCoord);
                     doMove(fragmentBelow, aboveCoord, coordinate);
                     processEvent(new LayoutEvent(LayoutEvent.MOVED_UP, fragmentBelow, aboveCoord, coordinate));
                     // Since this logic path is a somewhat special case, the processing of the  MOVED_DOWN
@@ -643,10 +643,10 @@
      * @throws InvalidLayoutLocationException
      * @throws LayoutEventException 
      */
-    protected void doMove(Fragment fragment, LayoutCoordinate oldCoordinate, LayoutCoordinate newCoordinate)
+    protected void doMove(ContentFragment fragment, LayoutCoordinate oldCoordinate, LayoutCoordinate newCoordinate)
             throws InvalidLayoutLocationException, LayoutEventException
     {
-        SortedMap<Integer, Fragment> oldColumn = getColumnMap(oldCoordinate.getX());
+        SortedMap<Integer, ContentFragment> oldColumn = getColumnMap(oldCoordinate.getX());
         oldColumn.remove(new Integer(oldCoordinate.getY()));
         coordinates.remove(fragment);
 
@@ -662,7 +662,7 @@
      * @throws FragmentNotInLayoutException if the Fragment is not present in this layout.
      * @see LayoutCoordinate
      */
-    public LayoutCoordinate getCoordinate(Fragment fragment) throws FragmentNotInLayoutException
+    public LayoutCoordinate getCoordinate(ContentFragment fragment) throws FragmentNotInLayoutException
     {
         if (coordinates.containsKey(fragment))
         {
@@ -684,16 +684,16 @@
      * @throws InvalidLayoutLocationException if the coordinates are outside the bounds of this layout.
      * @throws LayoutEventException id a LayoutEvent fails
      */
-    protected void doAdd(int columnNumber, int rowNumber, Fragment fragment) throws InvalidLayoutLocationException, LayoutEventException
+    protected void doAdd(int columnNumber, int rowNumber, ContentFragment fragment) throws InvalidLayoutLocationException, LayoutEventException
     {
-        SortedMap<Integer, Fragment> column = getColumnMap(columnNumber);
+        SortedMap<Integer, ContentFragment> column = getColumnMap(columnNumber);
     
         Integer rowInteger = new Integer(rowNumber);
         LayoutCoordinate targetCoordinate = new LayoutCoordinate(columnNumber, rowNumber);
         if (column.containsKey(rowInteger))
         {
-            // If the row has something in it, push everythin down 1
-            Fragment existingFragment = (Fragment) column.get(rowInteger);
+            // If the row has something in it, push everything down 1
+            ContentFragment existingFragment = (ContentFragment) column.get(rowInteger);
             column.put(rowInteger, fragment);
             coordinates.put(fragment, targetCoordinate);
             doAdd(columnNumber, ++rowNumber, existingFragment);
@@ -723,7 +723,7 @@
      * @throws InvalidLayoutLocationException if the <code>columnNumber</code> resides
      * outside the bounds of this layout.
      */
-    protected final SortedMap<Integer, Fragment> getColumnMap(int columnNumber) throws InvalidLayoutLocationException
+    protected final SortedMap<Integer, ContentFragment> getColumnMap(int columnNumber) throws InvalidLayoutLocationException
     {
         Integer columnNumberInteger = new Integer(columnNumber);
 
@@ -747,9 +747,9 @@
      * @param fragment
      * @return valid row for this fragment within this layout.
      */
-    protected final int getRow(int currentColumn, Fragment fragment)
+    protected final int getRow(int currentColumn, ContentFragment fragment)
     {
-        String propertyValue = fragment.getProperty(Fragment.ROW_PROPERTY_NAME);
+        String propertyValue = fragment.getProperty(ContentFragment.ROW_PROPERTY_NAME);
         if (propertyValue != null)
         {
             return Integer.parseInt(propertyValue);
@@ -773,9 +773,9 @@
      * @param fragment
      * @return
      */
-    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/jetspeed-commons/src/main/java/org/apache/jetspeed/portlets/layout/FragmentNotInLayoutException.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/portlets/layout/FragmentNotInLayoutException.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/portlets/layout/FragmentNotInLayoutException.java (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/portlets/layout/FragmentNotInLayoutException.java Wed Nov 18 18:24:48 2009
@@ -16,19 +16,19 @@
  */
 package org.apache.jetspeed.portlets.layout;
 
-import org.apache.jetspeed.om.page.Fragment;
+import org.apache.jetspeed.om.page.ContentFragment;
 
 
 /**
- * This exception indicates that an attmept was made get the coordinates
- * within a layout for a fragement that is not within that layout.
+ * This exception indicates that an attempt was made get the coordinates
+ * within a layout for a fragment that is not within that layout.
  * 
  * @author <href a="mailto:weaver@apache.org">Scott T. Weaver</a>
  * @see org.apache.jetspeed.portlets.layout.ColumnLayout
  */
 public class FragmentNotInLayoutException extends LayoutException
 {
-    public FragmentNotInLayoutException(Fragment fragment)
+    public FragmentNotInLayoutException(ContentFragment fragment)
     {
        super("The fragment "+fragment != null ?fragment.getId():"{null fragment}"+" could not be located in this layout.");
        

Modified: portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/portlets/layout/LayoutEvent.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/portlets/layout/LayoutEvent.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/portlets/layout/LayoutEvent.java (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/portlets/layout/LayoutEvent.java Wed Nov 18 18:24:48 2009
@@ -16,7 +16,8 @@
  */
 package org.apache.jetspeed.portlets.layout;
 
-import org.apache.jetspeed.om.page.Fragment;
+import org.apache.jetspeed.om.page.ContentFragment;
+import org.apache.jetspeed.om.page.ContentPage;
 
 /**
  * A LayoutEvent is used by ColumnLayout to notify its LayoutAeventListeners
@@ -51,22 +52,48 @@
     public static final int MOVED_RIGHT = 4;
     
     private final int eventType;
-    private final Fragment fragment;
+    private final ContentPage page;
+    private final String portletType;
+    private final String portletName;
+    private final ContentFragment fragment;
     private final LayoutCoordinate originalCoordinate;
     private final LayoutCoordinate newCoordinate;    
    
     /**
      * 
      * @param eventType The type of event (see the event constants)
+     * @param page Page that is the target of this event.
+     * @param portletType The new portlet type.
+     * @param portletName The new portlet name.
+     * @see org.apache.jetspeed.om.page.ContentFragment
+     */
+    public LayoutEvent(int eventType, ContentPage page, String portletType, String portletName)
+    {
+        super();       
+        this.eventType = eventType;
+        this.page = page;
+        this.portletType = portletType;
+        this.portletName = portletName;
+        this.fragment = null;
+        this.originalCoordinate = null;
+        this.newCoordinate = null;
+    }
+   
+    /**
+     * 
+     * @param eventType The type of event (see the event constants)
      * @param fragment Fragment that is the target of this event.
      * @param originalCoordinate the previous LayoutCoordinate of this Fragment
      * @param newCoordinate the new and current coordinates of this fragment.
-     * @see org.apache.jetspeed.om.page.Fragment
+     * @see org.apache.jetspeed.om.page.ContentFragment
      */
-    public LayoutEvent(int eventType, Fragment fragment, LayoutCoordinate originalCoordinate, LayoutCoordinate newCoordinate)
+    public LayoutEvent(int eventType, ContentFragment fragment, LayoutCoordinate originalCoordinate, LayoutCoordinate newCoordinate)
     {
         super();       
         this.eventType = eventType;
+        this.page = null;
+        this.portletType = null;
+        this.portletName = null;
         this.fragment = fragment;
         this.originalCoordinate = originalCoordinate;
         this.newCoordinate = newCoordinate;
@@ -84,11 +111,39 @@
     }
     
     /**
+     * Returns the page that is the target of this event.
+     * @return Page the fragment that is the target of this event.
+     * @see org.apache.jetspeed.om.page.ContentPage
+     */
+    public ContentPage getPage()
+    {
+        return page;
+    }
+    
+    /** 
+     * Returns the portlet type.
+     * @return the portlet type.
+     */    
+    public String getPortletType()
+    {
+        return portletType;
+    }
+    
+    /** 
+     * Returns the portlet name.
+     * @return the portlet name.
+     */    
+    public String getPortletName()
+    {
+        return portletName;
+    }
+    
+    /**
      * Returns the fragment that is the target of this event.
      * @return Fragment the fragment that is the target of this event.
-     * @see org.apache.jetspeed.om.page.Fragment
+     * @see org.apache.jetspeed.om.page.ContentFragment
      */
-    public Fragment getFragment()
+    public ContentFragment getFragment()
     {
         return fragment;
     }
@@ -113,17 +168,34 @@
         return originalCoordinate;
     }
 
-
+    /* (non-Javadoc)
+     * @see java.lang.Object#equals(java.lang.Object)
+     */
     public boolean equals(Object obj)
     {
-        if(obj instanceof LayoutEvent)
+        if (obj instanceof LayoutEvent)
         {
             LayoutEvent event = (LayoutEvent) obj;
-            return event.fragment.equals(fragment) 
-              && event.eventType == eventType
-              && event.originalCoordinate.equals(originalCoordinate)
-              && event.newCoordinate.equals(newCoordinate);
-            
+            if (fragment != null)
+            {
+                return (event.fragment.equals(fragment) && 
+                        event.eventType == eventType &&
+                        event.originalCoordinate.equals(originalCoordinate) &&
+                        event.newCoordinate.equals(newCoordinate));
+            }
+            else if (page != null)
+            {
+                return (event.page.equals(page) &&
+                        event.eventType == eventType &&
+                        ((event.portletName == null && portletName == null) ||
+                         (event.portletName != null && event.portletName.equals(portletName))) &&
+                        ((event.portletType == null && portletType == null) ||
+                         (event.portletType != null && event.portletType.equals(portletType))));
+            }
+            else
+            {
+                return (event.eventType == eventType);
+            }
         }
         else
         {
@@ -131,12 +203,22 @@
         }
     }
 
-
+    /* (non-Javadoc)
+     * @see java.lang.Object#toString()
+     */
     public String toString()
-    {        
-        return "event_target="+fragment.getId()+",event_type_code="+ eventType + ",orginial_coordinate="+ originalCoordinate+
-               ",new_coordinate="+newCoordinate;
+    {
+        if (fragment != null)
+        {
+            return "event_target="+fragment.getId()+",event_type_code="+ eventType + ",orginial_coordinate="+ originalCoordinate+",new_coordinate="+ newCoordinate;
+        }
+        else if (page != null)
+        {
+            return "event_target="+page.getId()+",event_type_code="+ eventType + ",portlet_type="+ portletType+",portlet_name="+ portletName;            
+        }
+        else
+        {
+            return "event_type_code="+ eventType;
+        }
     }
-    
-
 }

Copied: portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/portlets/layout/PageLayoutEventListener.java (from r830800, portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/portlets/layout/PageManagerLayoutEventListener.java)
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/portlets/layout/PageLayoutEventListener.java?p2=portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/portlets/layout/PageLayoutEventListener.java&p1=portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/portlets/layout/PageManagerLayoutEventListener.java&r1=830800&r2=881862&rev=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/portlets/layout/PageManagerLayoutEventListener.java (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/portlets/layout/PageLayoutEventListener.java Wed Nov 18 18:24:48 2009
@@ -16,37 +16,38 @@
 */
 package org.apache.jetspeed.portlets.layout;
 
-import org.apache.jetspeed.om.page.Fragment;
-import org.apache.jetspeed.om.page.Page;
-import org.apache.jetspeed.page.PageManager;
+import org.apache.jetspeed.om.page.ContentFragment;
+import org.apache.jetspeed.om.page.ContentPage;
 
-public class PageManagerLayoutEventListener implements LayoutEventListener
+public class PageLayoutEventListener implements LayoutEventListener
 {
-    private final PageManager pageManager;
-    private final Page page;
-    
-    public PageManagerLayoutEventListener(PageManager pageManager, Page page, String layoutType)
+    public PageLayoutEventListener(String layoutType)
     {
-        this.pageManager = pageManager;
-        this.page = page;
     }
 
     public void handleEvent(LayoutEvent event) throws LayoutEventException
     {
         try
         {
-            if(event.getEventType() == LayoutEvent.ADDED)
+            if (event.getEventType() == LayoutEvent.ADDED)
             {
-                page.getRootFragment().getFragments().add(event.getFragment());
-                pageManager.updatePage(page);
+                ContentPage page = event.getPage();
+                ContentFragment fragment = event.getFragment();
+                if (fragment == null)
+                {
+                    page.addPortlet(event.getPortletType(), event.getPortletName());
+                }
+                else
+                {
+                    LayoutCoordinate coordinate = event.getNewCoordinate();
+                    page.addFragmentAtRowColumn(fragment, coordinate.getY(), coordinate.getX());                    
+                }
             }
             else
             {
-                Fragment fragment = event.getFragment();
                 LayoutCoordinate coordinate = event.getNewCoordinate();
-                fragment.getProperties().put(Fragment.COLUMN_PROPERTY_NAME, String.valueOf(coordinate.getX()));
-                fragment.getProperties().put(Fragment.ROW_PROPERTY_NAME, String.valueOf(coordinate.getY()));
-                pageManager.updatePage(page);
+                ContentFragment fragment = event.getFragment();
+                fragment.updateRowColumn(coordinate.getY(), coordinate.getX());
             }
         }
         catch (Exception e)
@@ -54,5 +55,4 @@
             throw new LayoutEventException("Unable to update page.", e);
         }
     }
-
 }

Propchange: portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/portlets/layout/PageLayoutEventListener.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/portlets/layout/PageLayoutEventListener.java
------------------------------------------------------------------------------
    svn:mergeinfo = 

Modified: portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/util/HeadElementsUtils.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/util/HeadElementsUtils.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/util/HeadElementsUtils.java (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/util/HeadElementsUtils.java Wed Nov 18 18:24:48 2009
@@ -38,7 +38,7 @@
     @SuppressWarnings("unchecked")
     public static void aggregateHeadElements(List<KeyValue<String, HeadElement>> aggregatedHeadElements, ContentFragment contentFragment)
     {
-        List<ContentFragment> childContentFragments = (List<ContentFragment>) contentFragment.getContentFragments();
+        List<ContentFragment> childContentFragments = (List<ContentFragment>) contentFragment.getFragments();
         
         if (childContentFragments != null && !childContentFragments.isEmpty())
         {

Modified: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/ddl-schema/phase2-schema.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/ddl-schema/phase2-schema.xml?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/ddl-schema/phase2-schema.xml (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/ddl-schema/phase2-schema.xml Wed Nov 18 18:24:48 2009
@@ -58,7 +58,7 @@
         <column name="METADATA_ID" primaryKey="true" required="true" type="INTEGER"/>
         <column name="FOLDER_ID" type="INTEGER" required="true"/>
         <column name="NAME" required="true" size="15" type="VARCHAR"/>
-        <column name="LOCALE" required="true" size="20" type="VARCHAR"/>
+        <column name="LOCALE" size="20" type="VARCHAR"/>
         <column name="VALUE" required="true" size="100" type="VARCHAR"/>
         <foreign-key foreignTable="FOLDER" name="FK_FOLDER_METADATA_1" onDelete="cascade">
             <reference foreign="FOLDER_ID" local="FOLDER_ID"/>
@@ -161,7 +161,7 @@
         <column name="METADATA_ID" primaryKey="true" required="true" type="INTEGER"/>
         <column name="MENU_ID" type="INTEGER" required="true"/>
         <column name="NAME" required="true" size="15" type="VARCHAR"/>
-        <column name="LOCALE" required="true" size="20" type="VARCHAR"/>
+        <column name="LOCALE" size="20" type="VARCHAR"/>
         <column name="VALUE" required="true" size="100" type="VARCHAR"/>
         <foreign-key foreignTable="FOLDER_MENU" name="FK_FOLDER_MENU_METADATA_1" onDelete="cascade">
             <reference foreign="MENU_ID" local="MENU_ID"/>
@@ -183,13 +183,15 @@
 
     <table name="PAGE">
         <column name="PAGE_ID" primaryKey="true" required="true" type="INTEGER"/>
+        <column name="CLASS_NAME" required="true" size="100" type="VARCHAR"/>
         <column name="PARENT_ID" type="INTEGER" required="true"/>
         <column name="PATH" required="true" size="240" type="VARCHAR"/>
+        <column name="PAGE_TYPE" size="40" type="VARCHAR"/>
         <column name="NAME" required="true" size="80" type="VARCHAR"/>
-        <column name="VERSION" required="false" size="40" type="VARCHAR"/>        
+        <column name="VERSION" size="40" type="VARCHAR"/>
         <column name="TITLE" size="100" type="VARCHAR"/>
         <column name="SHORT_TITLE" size="40" type="VARCHAR"/>
-        <column name="IS_HIDDEN" required="true" type="BOOLEANINT"/>
+        <column name="IS_HIDDEN" type="BOOLEANINT"/>
         <column name="SKIN" size="80" type="VARCHAR"/>
         <column name="DEFAULT_LAYOUT_DECORATOR" size="80" type="VARCHAR"/>
         <column name="DEFAULT_PORTLET_DECORATOR" size="80" type="VARCHAR"/>
@@ -217,7 +219,7 @@
         <column name="METADATA_ID" primaryKey="true" required="true" type="INTEGER"/>
         <column name="PAGE_ID" type="INTEGER" required="true"/>
         <column name="NAME" required="true" size="15" type="VARCHAR"/>
-        <column name="LOCALE" required="true" size="20" type="VARCHAR"/>
+        <column name="LOCALE" size="20" type="VARCHAR"/>
         <column name="VALUE" required="true" size="100" type="VARCHAR"/>
         <foreign-key foreignTable="PAGE" name="FK_PAGE_METADATA_1" onDelete="cascade">
             <reference foreign="PAGE_ID" local="PAGE_ID"/>
@@ -303,7 +305,7 @@
         <column name="METADATA_ID" primaryKey="true" required="true" type="INTEGER"/>
         <column name="MENU_ID" type="INTEGER" required="true"/>
         <column name="NAME" required="true" size="15" type="VARCHAR"/>
-        <column name="LOCALE" required="true" size="20" type="VARCHAR"/>
+        <column name="LOCALE" size="20" type="VARCHAR"/>
         <column name="VALUE" required="true" size="100" type="VARCHAR"/>
         <foreign-key foreignTable="PAGE_MENU" name="FK_PAGE_MENU_METADATA_1" onDelete="cascade">
             <reference foreign="MENU_ID" local="MENU_ID"/>
@@ -325,9 +327,11 @@
 
     <table name="FRAGMENT">
         <column name="FRAGMENT_ID" primaryKey="true" required="true" type="INTEGER"/>
+        <column name="CLASS_NAME" required="true" size="100" type="VARCHAR"/>
         <column name="PARENT_ID" type="INTEGER"/>
         <column name="PAGE_ID" type="INTEGER"/>
         <column name="FRAGMENT_STRING_ID" size="80" type="VARCHAR"/>
+        <column name="FRAGMENT_STRING_REFID" size="80" type="VARCHAR"/>
         <column name="NAME" size="100" type="VARCHAR"/>
         <column name="TITLE" size="100" type="VARCHAR"/>
         <column name="SHORT_TITLE" size="40" type="VARCHAR"/>
@@ -361,9 +365,12 @@
         <index name="UN_FRAGMENT_1">
             <index-column name="PAGE_ID"/>
         </index>
-        <unique name="UN_FRAGMENT_2">
-            <unique-column name="FRAGMENT_STRING_ID"/>
-        </unique>
+        <index name="IX_FRAGMENT_2">
+            <index-column name="FRAGMENT_STRING_REFID"/>
+        </index>
+        <index name="IX_FRAGMENT_3">
+            <index-column name="FRAGMENT_STRING_ID"/>
+        </index>
     </table>
 
     <table name="FRAGMENT_CONSTRAINT">
@@ -438,7 +445,7 @@
         <column name="PARENT_ID" type="INTEGER" required="true"/>
         <column name="PATH" required="true" size="240" type="VARCHAR"/>
         <column name="NAME" required="true" size="80" type="VARCHAR"/>
-        <column name="VERSION" required="false" size="40" type="VARCHAR"/>        
+        <column name="VERSION" size="40" type="VARCHAR"/>        
         <column name="TITLE" size="100" type="VARCHAR"/>
         <column name="SHORT_TITLE" size="40" type="VARCHAR"/>
         <column name="IS_HIDDEN" required="true" type="BOOLEANINT"/>
@@ -469,7 +476,7 @@
         <column name="METADATA_ID" primaryKey="true" required="true" type="INTEGER"/>
         <column name="LINK_ID" type="INTEGER" required="true"/>
         <column name="NAME" required="true" size="15" type="VARCHAR"/>
-        <column name="LOCALE" required="true" size="20" type="VARCHAR"/>
+        <column name="LOCALE" size="20" type="VARCHAR"/>
         <column name="VALUE" required="true" size="100" type="VARCHAR"/>
         <foreign-key foreignTable="LINK" name="FK_LINK_METADATA_1" onDelete="cascade">
             <reference foreign="LINK_ID" local="LINK_ID"/>
@@ -527,7 +534,7 @@
         <column name="PARENT_ID" type="INTEGER" required="true"/>
         <column name="PATH" required="true" size="240" type="VARCHAR"/>
         <column name="NAME" required="true" size="80" type="VARCHAR"/>
-        <column name="VERSION" required="false" size="40" type="VARCHAR"/>                
+        <column name="VERSION" size="40" type="VARCHAR"/>                
         <column name="SUBSITE" size="40" type="VARCHAR"/>
         <column name="USER_PRINCIPAL" size="40" type="VARCHAR"/>
         <column name="ROLE_PRINCIPAL" size="40" type="VARCHAR"/>

Modified: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/ajax-layout.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/ajax-layout.xml?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/ajax-layout.xml (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/ajax-layout.xml Wed Nov 18 18:24:48 2009
@@ -42,6 +42,9 @@
       <ref bean="org.apache.jetspeed.page.PageManager" />
     </constructor-arg>
     <constructor-arg index='1'>
+      <ref bean="org.apache.jetspeed.layout.PageLayoutComponent" />
+    </constructor-arg>
+    <constructor-arg index='2'>
       <ref bean="EnableCreateUserPagesFromRolesOnEdit" />
     </constructor-arg>
   </bean>

Modified: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/alternate/versioned-deployment/jetspeed-services.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/alternate/versioned-deployment/jetspeed-services.xml?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/alternate/versioned-deployment/jetspeed-services.xml (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/alternate/versioned-deployment/jetspeed-services.xml Wed Nov 18 18:24:48 2009
@@ -123,6 +123,9 @@
         <entry key="SecurityAttributesProvider">
         	<ref bean="org.apache.jetspeed.security.attributes.SecurityAttributesProvider" />
         </entry>        
+        <entry key="PageLayoutComponent">
+        	<ref bean="org.apache.jetspeed.layout.PageLayoutComponent" />
+        </entry> 
         <!-- first uncomment the below service bean in security-spi-atn.xml
           <entry key="PasswordEncodingService">
           <ref bean="org.apache.jetspeed.security.PasswordEncodingService" />

Modified: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/importer-page-manager.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/importer-page-manager.xml?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/importer-page-manager.xml (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/importer-page-manager.xml Wed Nov 18 18:24:48 2009
@@ -41,6 +41,72 @@
     </constructor-arg>
   </bean>
 
+  <bean id="ImportTpsmlDocumentHandler" class="org.apache.jetspeed.page.document.psml.CastorFileSystemDocumentHandler">
+    <meta key="j2:cat" value="default" />
+    <constructor-arg index="0">
+      <ref bean="ImportIdGenerator" />
+    </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>${java.io.tmpdir}</value>
+    </constructor-arg>
+    <constructor-arg index="5">
+      <ref bean="ImportPageFileCache" />
+    </constructor-arg>
+  </bean>
+
+  <bean id="ImportDpsmlDocumentHandler" class="org.apache.jetspeed.page.document.psml.CastorFileSystemDocumentHandler">
+    <meta key="j2:cat" value="default" />
+    <constructor-arg index="0">
+      <ref bean="ImportIdGenerator" />
+    </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>${java.io.tmpdir}</value>
+    </constructor-arg>
+    <constructor-arg index="5">
+      <ref bean="ImportPageFileCache" />
+    </constructor-arg>
+  </bean>
+
+  <bean id="ImportFpsmlDocumentHandler" class="org.apache.jetspeed.page.document.psml.CastorFileSystemDocumentHandler">
+    <meta key="j2:cat" value="default" />
+    <constructor-arg index="0">
+      <ref bean="ImportIdGenerator" />
+    </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>${java.io.tmpdir}</value>
+    </constructor-arg>
+    <constructor-arg index="5">
+      <ref bean="ImportPageFileCache" />
+    </constructor-arg>
+  </bean>
+
   <bean id="ImportLinkDocumentHandler" class="org.apache.jetspeed.page.document.psml.CastorFileSystemDocumentHandler">
     <meta key="j2:cat" value="default" />
     <constructor-arg index="0">
@@ -116,6 +182,15 @@
         <entry key=".psml">
           <ref bean="ImportPsmlDocumentHandler" />
         </entry>
+        <entry key=".tpsml">
+          <ref bean="ImportTpsmlDocumentHandler" />
+        </entry>
+        <entry key=".dpsml">
+          <ref bean="ImportDpsmlDocumentHandler" />
+        </entry>
+        <entry key=".fpsml">
+          <ref bean="ImportFpsmlDocumentHandler" />
+        </entry>
         <entry key=".link">
           <ref bean="ImportLinkDocumentHandler" />
         </entry>

Modified: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-services.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-services.xml?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-services.xml (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/jetspeed-services.xml Wed Nov 18 18:24:48 2009
@@ -140,6 +140,9 @@
         <entry key="SpacesService">
         	<ref bean="org.apache.jetspeed.services.Spaces" />
         </entry> 
+        <entry key="PageLayoutComponent">
+        	<ref bean="org.apache.jetspeed.layout.PageLayoutComponent" />
+        </entry> 
         <entry key="PreferencesService">
             <ref bean="org.apache.pluto.services.PreferencesService" />
         </entry> 

Modified: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/page-manager.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/page-manager.xml?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/page-manager.xml (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/page-manager.xml Wed Nov 18 18:24:48 2009
@@ -46,6 +46,72 @@
             </constructor-arg>
           </bean>
         </entry>
+        <entry key=".tpsml">
+          <bean 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>${psml.pages.path}</value>
+            </constructor-arg>
+            <constructor-arg index="5">
+              <ref bean="PageFileCache" />
+            </constructor-arg>
+          </bean>
+        </entry>
+        <entry key=".dpsml">
+          <bean 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>${psml.pages.path}</value>
+            </constructor-arg>
+            <constructor-arg index="5">
+              <ref bean="PageFileCache" />
+            </constructor-arg>
+          </bean>
+        </entry>
+        <entry key=".fpsml">
+          <bean 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>${psml.pages.path}</value>
+            </constructor-arg>
+            <constructor-arg index="5">
+              <ref bean="PageFileCache" />
+            </constructor-arg>
+          </bean>
+        </entry>
         <entry key=".link">
           <bean class="org.apache.jetspeed.page.document.psml.CastorFileSystemDocumentHandler">
             <constructor-arg index="0">
@@ -209,6 +275,9 @@
         -->
         <prop key="*">PROPAGATION_REQUIRED</prop>
         <prop key="getPage*">PROPAGATION_SUPPORTS</prop>
+        <prop key="getPageTemplate*">PROPAGATION_SUPPORTS</prop>
+        <prop key="getDynamicPage*">PROPAGATION_SUPPORTS</prop>
+        <prop key="getFragmentDefinition*">PROPAGATION_SUPPORTS</prop>
         <prop key="getLink*">PROPAGATION_SUPPORTS</prop>
         <prop key="getFolder*">PROPAGATION_SUPPORTS</prop>
         <prop key="getContentPage">PROPAGATION_SUPPORTS</prop>
@@ -216,6 +285,9 @@
         <prop key="getUserFolder">PROPAGATION_SUPPORTS</prop>
         <prop key="update*">PROPAGATION_REQUIRED,-org.apache.jetspeed.page.document.NodeException</prop>
         <prop key="removePage">PROPAGATION_REQUIRED,-org.apache.jetspeed.page.document.NodeException</prop>
+        <prop key="removePageTemplate">PROPAGATION_REQUIRED,-org.apache.jetspeed.page.document.NodeException</prop>
+        <prop key="removeDynamicPage">PROPAGATION_REQUIRED,-org.apache.jetspeed.page.document.NodeException</prop>
+        <prop key="removeFragmentDefinition">PROPAGATION_REQUIRED,-org.apache.jetspeed.page.document.NodeException</prop>
         <prop key="removeFolder">PROPAGATION_REQUIRED,-org.apache.jetspeed.page.document.NodeException</prop>
         <prop key="removeLink">PROPAGATION_REQUIRED,-org.apache.jetspeed.page.document.NodeException</prop>
         <prop key="removePageSecurity">PROPAGATION_REQUIRED,-org.apache.jetspeed.page.document.NodeException</prop>
@@ -224,6 +296,9 @@
         <prop key="addPages">PROPAGATION_REQUIRED,-org.apache.jetspeed.page.document.NodeException</prop>
         <prop key="folderExists">PROPAGATION_SUPPORTS</prop>
         <prop key="pageExists">PROPAGATION_SUPPORTS</prop>
+        <prop key="pageTemplateExists">PROPAGATION_SUPPORTS</prop>
+        <prop key="dynamicPageExists">PROPAGATION_SUPPORTS</prop>
+        <prop key="fragmentDefinitionExists">PROPAGATION_SUPPORTS</prop>
         <prop key="linkExists">PROPAGATION_SUPPORTS</prop>
         <prop key="userFolderExists">PROPAGATION_SUPPORTS</prop>
         <prop key="userPageExists">PROPAGATION_SUPPORTS</prop>
@@ -323,4 +398,13 @@
     </constructor-arg>
   </bean>
 
+  <!-- PageLayoutComponent -->
+  <bean id="org.apache.jetspeed.layout.PageLayoutComponent"
+    class="org.apache.jetspeed.layout.impl.PageLayoutComponentImpl">
+    <meta key="j2:cat" value="default" />
+    <constructor-arg index="0">
+      <ref bean="org.apache.jetspeed.page.PageManager" />
+    </constructor-arg>
+  </bean>
+
 </beans>

Modified: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/pipelines.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/pipelines.xml?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/pipelines.xml (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/pipelines.xml Wed Nov 18 18:24:48 2009
@@ -106,12 +106,15 @@
     <constructor-arg index="1">
       <ref bean="org.apache.jetspeed.portalsite.PortalSite" />
     </constructor-arg>
+    <constructor-arg index="2">
+      <ref bean="org.apache.jetspeed.layout.PageLayoutComponent" />
+    </constructor-arg>
     <!--
       request fallback to root folder/page enabled by default;
       if set to false, requests generate HTTP 403/404 errors
       for access errors or missing pages
     -->
-    <constructor-arg index="2">
+    <constructor-arg index="3">
       <value>true</value>
     </constructor-arg>
     <!--
@@ -120,7 +123,7 @@
       default page specified in PSML, (or the first page in
       the folder), is always selected
     -->
-    <constructor-arg index="3">
+    <constructor-arg index="4">
       <value>true</value>
     </constructor-arg>
   </bean>
@@ -151,12 +154,15 @@
     <constructor-arg index="1">
       <ref bean="org.apache.jetspeed.portalsite.PortalSite" />
     </constructor-arg>
+    <constructor-arg index="2">
+      <ref bean="org.apache.jetspeed.layout.PageLayoutComponent" />
+    </constructor-arg>
     <!--
       request fallback to root folder/page enabled by default;
       if set to false, requests generate HTTP 403/404 errors
       for access errors or missing pages
     -->
-    <constructor-arg index="2">
+    <constructor-arg index="3">
       <value>true</value>
     </constructor-arg>
     <!--
@@ -165,13 +171,13 @@
       default page specified in PSML, (or the first page in
       the folder), is always selected
     -->
-    <constructor-arg index="3">
+    <constructor-arg index="4">
       <value>true</value>
     </constructor-arg>
-    <constructor-arg index="4">
+    <constructor-arg index="5">
       <ref bean="org.apache.jetspeed.page.PageManager" />
     </constructor-arg>
-    <constructor-arg index="5">
+    <constructor-arg index="6">
       <ref bean="org.apache.jetspeed.security.UserManager" />
     </constructor-arg>
   </bean>
@@ -190,12 +196,15 @@
     <constructor-arg index="1">
       <ref bean="org.apache.jetspeed.portalsite.PortalSite" />
     </constructor-arg>
+    <constructor-arg index="2">
+      <ref bean="org.apache.jetspeed.layout.PageLayoutComponent" />
+    </constructor-arg>
     <!--
       request fallback to root folder/page enabled by default;
       if set to false, requests generate HTTP 403/404 errors
       for access errors or missing pages
     -->
-    <constructor-arg index="2">
+    <constructor-arg index="3">
       <value>true</value>
     </constructor-arg>
     <!--
@@ -204,10 +213,10 @@
       default page specified in PSML, (or the first page in
       the folder), is always selected
     -->
-    <constructor-arg index="3">
+    <constructor-arg index="4">
       <value>true</value>
     </constructor-arg>
-    <constructor-arg index="4">
+    <constructor-arg index="5">
       <ref bean="org.apache.jetspeed.page.PageManager" />
     </constructor-arg>
   </bean>
@@ -888,4 +897,4 @@
   </bean>
     
 
-</beans>
\ No newline at end of file
+</beans>

Modified: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/registry.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/registry.xml?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/registry.xml (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/registry.xml Wed Nov 18 18:24:48 2009
@@ -93,22 +93,18 @@
     </property>
   </bean>
 
-    <bean id="org.apache.pluto.services.PreferencesService" name="PortletPreferencesProviderImpl"
-          class="org.apache.jetspeed.components.portletpreferences.PortletPreferencesServiceImpl"
-	    init-method="init" destroy-method="destroy">
-          
-      <meta key="j2:cat" value="default or registry" />          
+  <bean id="org.apache.pluto.services.PreferencesService" name="PortletPreferencesProviderImpl"
+        class="org.apache.jetspeed.components.portletpreferences.PortletPreferencesServiceImpl"
+        init-method="init" destroy-method="destroy">
+    <meta key="j2:cat" value="default or registry" />          
     <constructor-arg index="0">
       <ref bean="portletFactory" />
     </constructor-arg>
     <constructor-arg index="1">
       <ref bean="preferencesCache" />
     </constructor-arg>    
-    <constructor-arg index='2'>
-    	<ref bean='org.apache.jetspeed.page.PageManager'/>
-    </constructor-arg>
     <property name="useEntityPreferences" ><value>true</value></property>
-    </bean>
+  </bean>
 
   <bean id="org.apache.jetspeed.components.portletpreferences.PortletPreferencesProvider" parent="baseTransactionProxy"
     name="portletPreferencesProvider" destroy-method="destroy">

Modified: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/static-bean-references.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/static-bean-references.xml?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/static-bean-references.xml (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/assembly/static-bean-references.xml Wed Nov 18 18:24:48 2009
@@ -83,26 +83,6 @@
     </property>
   </bean>
 
-  <bean id="_dbFragmentImplInitializer" class="org.apache.jetspeed.components.LifecycleAwareStaticClassInitializer">
-    <meta key="j2:cat" value="default or dbPageManager or pageSerializer" />
-    <property name="className" value="org.apache.jetspeed.om.page.impl.FragmentImpl" />
-    <property name="methodName" value="setPermissionsFactory" />
-    <property name="typeName" value="org.apache.jetspeed.security.PermissionFactory" />
-    <property name="value">
-      <ref bean="org.apache.jetspeed.security.PermissionManager" />
-    </property>
-  </bean>
-
-  <bean id="_xmlFragmentImplInitializer" class="org.apache.jetspeed.components.LifecycleAwareStaticClassInitializer">
-    <meta key="j2:cat" value="default or xmlPageManager or pageSerializer" />
-    <property name="className" value="org.apache.jetspeed.om.page.psml.FragmentImpl" />
-    <property name="methodName" value="setPermissionsFactory" />
-    <property name="typeName" value="org.apache.jetspeed.security.PermissionFactory" />
-    <property name="value">
-      <ref bean="org.apache.jetspeed.security.PermissionManager" />
-    </property>
-  </bean>
-
   <bean id="_jetspeedPrincipalConcreteClassRowReaderInitializer"
     class="org.apache.jetspeed.components.LifecycleAwareStaticClassInitializer">
     <meta key="j2:cat" value="default or security" />

Modified: portals/jetspeed-2/portal/trunk/pom.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/pom.xml?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/pom.xml (original)
+++ portals/jetspeed-2/portal/trunk/pom.xml Wed Nov 18 18:24:48 2009
@@ -470,6 +470,11 @@
         <artifactId>jetspeed-serializer</artifactId>
         <version>${pom.version}</version>
       </dependency>
+      <dependency>
+        <groupId>org.apache.portals.jetspeed-2</groupId>
+        <artifactId>jetspeed-page-layout</artifactId>
+        <version>${pom.version}</version>
+      </dependency>
 
       <!-- Portals Applications JARs -->
       <dependency>



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