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 [14/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-profiler/src/main/java/org/apache/jetspeed/profiler/rules/impl/PathSessionResolver.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-profiler/src/main/java/org/apache/jetspeed/profiler/rules/impl/PathSessionResolver.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-profiler/src/main/java/org/apache/jetspeed/profiler/rules/impl/PathSessionResolver.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-profiler/src/main/java/org/apache/jetspeed/profiler/rules/impl/PathSessionResolver.java Wed Nov 18 18:24:48 2009
@@ -17,7 +17,7 @@
 package org.apache.jetspeed.profiler.rules.impl;
 
 import org.apache.jetspeed.PortalReservedParameters;
-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;
@@ -36,7 +36,7 @@
     public String resolve(RequestContext context, RuleCriterion criterion)
     {        
         String path = null;
-        Page page = context.getPage();
+        ContentPage page = context.getPage();
         
         if (page != null)
         {

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-rdbms/src/main/java/org/apache/jetspeed/util/ojb/CSVtoCollectionFieldConversion.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-rdbms/src/main/java/org/apache/jetspeed/util/ojb/CSVtoCollectionFieldConversion.java
------------------------------------------------------------------------------
    svn:mergeinfo = 

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-rdbms/src/main/java/org/apache/jetspeed/util/ojb/CollectionDebugger.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-rdbms/src/main/java/org/apache/jetspeed/util/ojb/CollectionDebugger.java
------------------------------------------------------------------------------
    svn:mergeinfo = 

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-rdbms/src/main/java/org/apache/jetspeed/util/ojb/CollectionOwnerClassDiscriminatorQueryCustomizer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-rdbms/src/main/java/org/apache/jetspeed/util/ojb/CollectionOwnerClassDiscriminatorQueryCustomizer.java
------------------------------------------------------------------------------
    svn:keywords = Id

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-rdbms/src/main/java/org/apache/jetspeed/util/ojb/CollectionOwnerClassDiscriminatorQueryCustomizer.java
------------------------------------------------------------------------------
    svn:mergeinfo = 

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-rdbms/src/main/java/org/apache/jetspeed/util/ojb/CollectionOwnerClassDiscriminatorQueryCustomizer.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-rdbms/src/main/java/org/apache/jetspeed/util/ojb/CollectionUtils.java
------------------------------------------------------------------------------
    svn:mergeinfo = 

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-rdbms/src/main/java/org/apache/jetspeed/util/ojb/FieldConversionLog.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-rdbms/src/main/java/org/apache/jetspeed/util/ojb/FieldConversionLog.java
------------------------------------------------------------------------------
    svn:mergeinfo = 

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-rdbms/src/main/java/org/apache/jetspeed/util/ojb/LocaleFieldConversion.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-rdbms/src/main/java/org/apache/jetspeed/util/ojb/LocaleFieldConversion.java
------------------------------------------------------------------------------
    svn:mergeinfo = 

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-rdbms/src/main/java/org/apache/jetspeed/util/ojb/ObjectIDtoLongFieldConversion.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-rdbms/src/main/java/org/apache/jetspeed/util/ojb/ObjectIDtoLongFieldConversion.java
------------------------------------------------------------------------------
    svn:mergeinfo = 

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-rdbms/src/main/java/org/apache/jetspeed/util/ojb/ObjectIDtoStringFieldConversion.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-rdbms/src/main/java/org/apache/jetspeed/util/ojb/ObjectIDtoStringFieldConversion.java
------------------------------------------------------------------------------
    svn:mergeinfo = 

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-registry/pom.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-registry/pom.xml?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-registry/pom.xml (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-registry/pom.xml Wed Nov 18 18:24:48 2009
@@ -78,6 +78,11 @@
       <scope>test</scope>
     </dependency>
     <dependency>
+      <groupId>${pom.groupId}</groupId>
+      <artifactId>jetspeed-page-layout</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-log4j12</artifactId>
       <scope>test</scope>

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletentity/PersistenceBrokerPortletEntityAccess.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletentity/PersistenceBrokerPortletEntityAccess.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletentity/PersistenceBrokerPortletEntityAccess.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletentity/PersistenceBrokerPortletEntityAccess.java Wed Nov 18 18:24:48 2009
@@ -22,7 +22,6 @@
 
 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.PortletDefinition;
 import org.apache.ojb.broker.query.Criteria;
 import org.apache.ojb.broker.query.Query;
@@ -124,7 +123,7 @@
      * @param principal
      * @return
      */
-    public String generateEntityKey( Fragment fragment)
+    public String generateEntityKey( ContentFragment fragment)
     {
         return fragment.getId();
     }

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletentity/PortletEntityImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletentity/PortletEntityImpl.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletentity/PortletEntityImpl.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletentity/PortletEntityImpl.java Wed Nov 18 18:24:48 2009
@@ -19,7 +19,7 @@
 import org.apache.jetspeed.components.portletregistry.PortletRegistry;
 import org.apache.jetspeed.container.PortletEntity;
 import org.apache.jetspeed.container.PortletWindow;
-import org.apache.jetspeed.om.page.Fragment;
+import org.apache.jetspeed.om.page.ContentFragment;
 import org.apache.jetspeed.om.portlet.PortletDefinition;
 
 /**
@@ -41,9 +41,9 @@
     private PortletDefinition portletDefinition = null;  
     protected String portletName;
     protected String appName;
-    private Fragment fragment;
+    private ContentFragment fragment;
     
-    public PortletEntityImpl(Fragment fragment)
+    public PortletEntityImpl(ContentFragment fragment)
     {
         setFragment(fragment);
     }
@@ -141,12 +141,12 @@
         }
     }
 
-    public Fragment getFragment()
+    public ContentFragment getFragment()
     {
         return this.fragment;
     }
     
-    public void setFragment(Fragment fragment)
+    public void setFragment(ContentFragment fragment)
     {
         this.fragment = fragment;
     }

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletpreferences/PortletPreferencesServiceImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletpreferences/PortletPreferencesServiceImpl.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletpreferences/PortletPreferencesServiceImpl.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletpreferences/PortletPreferencesServiceImpl.java Wed Nov 18 18:24:48 2009
@@ -30,19 +30,15 @@
 import javax.portlet.ValidatorException;
 
 import org.apache.jetspeed.JetspeedActions;
-import org.apache.jetspeed.PortalReservedParameters;
 import org.apache.jetspeed.cache.CacheElement;
 import org.apache.jetspeed.cache.JetspeedCache;
 import org.apache.jetspeed.container.PortletWindow;
 import org.apache.jetspeed.factory.PortletFactory;
 import org.apache.jetspeed.om.page.ContentFragment;
-import org.apache.jetspeed.om.page.ContentPage;
 import org.apache.jetspeed.om.portlet.PortletApplication;
 import org.apache.jetspeed.om.portlet.Preference;
 import org.apache.jetspeed.om.portlet.Preferences;
 import org.apache.jetspeed.om.preference.FragmentPreference;
-import org.apache.jetspeed.page.PageManager;
-import org.apache.jetspeed.request.RequestContext;
 import org.apache.jetspeed.security.SubjectHelper;
 import org.apache.jetspeed.security.User;
 import org.apache.ojb.broker.query.Criteria;
@@ -73,7 +69,7 @@
     protected static final String EMPTY_VALUE = "_";
     
     private PortletFactory portletFactory;
-    private PageManager pageManager;
+
     /**
      * Cache elements are stored as element type JetspeedPreferencesMap
      */
@@ -101,17 +97,10 @@
         this.preferenceCache = preferenceCache;
     }
     
-    public PortletPreferencesServiceImpl(PortletFactory portletFactory, JetspeedCache preferenceCache, PageManager pageManager)
-            throws ClassNotFoundException
-    {
-        this(portletFactory, preferenceCache);
-        this.pageManager = pageManager;
-    }
-    
-    public PortletPreferencesServiceImpl(PortletFactory portletFactory, JetspeedCache preferenceCache, PageManager pageManager, List<String> apps, boolean preloadEntities)
+    public PortletPreferencesServiceImpl(PortletFactory portletFactory, JetspeedCache preferenceCache, List<String> apps, boolean preloadEntities)
     throws ClassNotFoundException
     {
-        this(portletFactory, preferenceCache, pageManager);
+        this(portletFactory, preferenceCache);
         this.preloadedApplications = apps;
         this.preloadEntities = preloadEntities;
     }
@@ -242,10 +231,9 @@
         PortletWindow window = (PortletWindow)pw;
         if (request.getPortletMode().equals(JetspeedActions.EDIT_DEFAULTS_MODE))
         {
-            RequestContext rc = (RequestContext) request.getAttribute(PortalReservedParameters.REQUEST_CONTEXT_ATTRIBUTE);
             try
             {
-                storeEntityPreferences(map, rc.getPage(), window);
+                storeEntityPreferences(map, window);
             }
             catch (PreferencesException e)
             {
@@ -600,29 +588,11 @@
      * Jetspeed: PortletPreferencesProvider
      */        
     @SuppressWarnings("unchecked")
-    public void storeEntityPreferences(Map<String, PortletPreference> map, ContentPage page, PortletWindow window)
+    public void storeEntityPreferences(Map<String, PortletPreference> map, PortletWindow window)
             throws PreferencesException
     {
-        ContentFragment fragment = window.getFragment();
-        List<FragmentPreference> fragmentPrefs = fragment.getPreferences();
-        fragmentPrefs.clear();
         for (Entry<String, PortletPreference> entry : map.entrySet())
         {
-            String name = entry.getKey();
-            PortletPreference pref = entry.getValue();
-            FragmentPreference fp = pageManager.newFragmentPreference();
-            fp.setName(name);
-            fp.setReadOnly(pref.isReadOnly());
-            String [] values = pref.getValues();
-            if (values != null)
-            {
-                List<String> list = (List<String>)fp.getValueList();
-                for (String value : values)
-                {
-                    list.add(value);
-                }
-            }
-            fragmentPrefs.add(fp);
             org.apache.jetspeed.om.portlet.PortletDefinition pd = window.getPortletDefinition();
             String entityId = window.getPortletEntityId();            
             String appName = pd.getApplication().getName();
@@ -632,7 +602,8 @@
         }
         try
         {
-            pageManager.updatePage(page);
+            ContentFragment fragment = window.getFragment();
+            fragment.updatePreferences(map);
         }
         catch (Exception e)
         {

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletApplicationLocalizedFieldImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletApplicationLocalizedFieldImpl.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletApplicationLocalizedFieldImpl.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletApplicationLocalizedFieldImpl.java Wed Nov 18 18:24:48 2009
@@ -16,6 +16,7 @@
  */
 package org.apache.jetspeed.om.portlet.impl;
 
+import org.apache.jetspeed.om.portlet.LocalizedFieldImpl;
 
 /**
  * 

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletApplicationMetadataImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletApplicationMetadataImpl.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletApplicationMetadataImpl.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletApplicationMetadataImpl.java Wed Nov 18 18:24:48 2009
@@ -18,6 +18,7 @@
 
 import java.util.Locale;
 
+import org.apache.jetspeed.om.portlet.GenericMetadataImpl;
 import org.apache.jetspeed.om.portlet.LocalizedField;
 
 /**

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletDefinitionImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletDefinitionImpl.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletDefinitionImpl.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletDefinitionImpl.java Wed Nov 18 18:24:48 2009
@@ -19,7 +19,6 @@
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletDefinitionLocalizedFieldImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletDefinitionLocalizedFieldImpl.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletDefinitionLocalizedFieldImpl.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletDefinitionLocalizedFieldImpl.java Wed Nov 18 18:24:48 2009
@@ -16,6 +16,7 @@
  */
 package org.apache.jetspeed.om.portlet.impl;
 
+import org.apache.jetspeed.om.portlet.LocalizedFieldImpl;
 
 /**
  * 

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletDefinitionMetadataImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletDefinitionMetadataImpl.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletDefinitionMetadataImpl.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletDefinitionMetadataImpl.java Wed Nov 18 18:24:48 2009
@@ -18,6 +18,7 @@
 
 import java.util.Locale;
 
+import org.apache.jetspeed.om.portlet.GenericMetadataImpl;
 import org.apache.jetspeed.om.portlet.LocalizedField;
 
 /**

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/test/java/org/apache/jetspeed/components/portletentity/TestPortletEntityDAO.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/test/java/org/apache/jetspeed/components/portletentity/TestPortletEntityDAO.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/test/java/org/apache/jetspeed/components/portletentity/TestPortletEntityDAO.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/test/java/org/apache/jetspeed/components/portletentity/TestPortletEntityDAO.java Wed Nov 18 18:24:48 2009
@@ -16,32 +16,25 @@
  */
 package org.apache.jetspeed.components.portletentity;
 
-import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
 
 import org.apache.jetspeed.Jetspeed;
 import org.apache.jetspeed.components.portletregistry.PortletRegistry;
-import org.apache.jetspeed.components.portletentity.ContentFragmentTestImpl;
 import org.apache.jetspeed.components.util.DatasourceEnabledSpringTestCase;
 import org.apache.jetspeed.container.PortletEntity;
 import org.apache.jetspeed.engine.MockJetspeedEngine;
+import org.apache.jetspeed.om.page.impl.ContentFragmentImpl;
 import org.apache.jetspeed.om.portlet.InitParam;
 import org.apache.jetspeed.om.portlet.PortletApplication;
 import org.apache.jetspeed.om.portlet.Preference;
 import org.apache.jetspeed.om.portlet.Preferences;
-import org.apache.jetspeed.om.page.ContentFragment;
-import org.apache.jetspeed.om.page.Fragment;
 import org.apache.jetspeed.om.portlet.PortletDefinition;
 import org.apache.jetspeed.om.portlet.impl.PortletApplicationDefinitionImpl;
 
 import org.apache.pluto.container.om.portlet.PortletApplicationDefinition;
 
-import org.jmock.Mock;
-import org.jmock.core.matcher.InvokeAtLeastOnceMatcher;
-import org.jmock.core.stub.ReturnStub;
-
 /**
  * <p>
  * TestPortletEntityDAO
@@ -104,13 +97,10 @@
         }
         assertNotNull("Portlet Def is null", pd);
 
-        Mock mockf1 = new Mock(Fragment.class);
-        mockf1.expects(new InvokeAtLeastOnceMatcher()).method("getName").will(new ReturnStub(pd.getUniqueName()));
-        mockf1.expects(new InvokeAtLeastOnceMatcher()).method("getId").will(new ReturnStub(TEST_ENTITY));
-        ContentFragment f1 = new ContentFragmentTestImpl((Fragment) mockf1.proxy(), new HashMap());
+        ContentFragmentImpl f1 = new ContentFragmentImpl(TEST_ENTITY);
+        f1.setName(pd.getUniqueName());
+        PortletEntity entity = entityAccess.generateEntityFromFragment(f1);
 
-        PortletEntity entity = entityAccess
-                .generateEntityFromFragment(new ContentFragmentTestImpl(f1, new HashMap()));
         // TODO: how to access prefs of entity??
         /*
         PreferenceSetComposite prefs = (PreferenceSetComposite) entity.getPreferenceSet();
@@ -200,37 +190,33 @@
         assertTrue(pref2.isValueSet());
         pref2.setValues(null);        
         assertFalse(pref2.isValueSet());
-        
+
         entity.store();
 
         prefs = (PreferenceSetComposite)entity.getPreferenceSet();
         pref2 = (PreferenceComposite) prefs.get("pref2");
 
         assertNull(pref2);
+        */
         
         PortletEntity entity2 = entityAccess.getPortletEntityForFragment(f1);
         assertTrue("entity id ", entity2.getId().toString().equals(TEST_ENTITY));
         assertNotNull("entity's portlet ", entity2.getPortletDefinition());
-        mockf1.verify();
-
-        Mock mockf2 = new Mock(Fragment.class);
-        mockf2.expects(new InvokeAtLeastOnceMatcher()).method("getName").will(new ReturnStub(pd.getUniqueName()));
-        ContentFragment f2 = new ContentFragmentTestImpl((Fragment) mockf2.proxy(), new HashMap());
 
         PortletEntity entity5 = entityAccess.newPortletEntityInstance(pd);
-
         System.out.println("before storing entity: " + entity5.getId());
 
         entityAccess.storePortletEntity(entity5);
         System.out.println("store done: " + entity5.getId());
-        mockf2.expects(new InvokeAtLeastOnceMatcher()).method("getId").will(new ReturnStub(entity5.getId().toString()));
+
+        ContentFragmentImpl f2 = new ContentFragmentImpl(TEST_ENTITY);
+        f2.setName(pd.getUniqueName());
 
         PortletEntity entity6 = entityAccess.getPortletEntityForFragment(f2);
         assertNotNull(entity6);
         System.out.println("reget : " + entity6.getId());
 
         entityAccess.removePortletEntity(entity6);
-        */
     }
 
     private void teardownTestData() throws Exception

Modified: portals/jetspeed-2/portal/trunk/components/pom.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/pom.xml?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/pom.xml (original)
+++ portals/jetspeed-2/portal/trunk/components/pom.xml Wed Nov 18 18:24:48 2009
@@ -44,6 +44,7 @@
         <module>jetspeed-id-generator</module>
         <module>jetspeed-locator</module>
         <module>jetspeed-page-manager</module>
+        <module>jetspeed-page-layout</module>
         <module>jetspeed-portal</module>
         <module>jetspeed-portal-site</module>
         <module>jetspeed-portlet-factory</module>

Modified: portals/jetspeed-2/portal/trunk/etc/import/assembly/import-page-manager.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/etc/import/assembly/import-page-manager.xml?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/etc/import/assembly/import-page-manager.xml (original)
+++ portals/jetspeed-2/portal/trunk/etc/import/assembly/import-page-manager.xml Wed Nov 18 18:24:48 2009
@@ -47,7 +47,11 @@
         </property>
         <property name="transactionAttributes">
             <props>
+              <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>  
@@ -55,6 +59,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>                            
@@ -63,6 +70,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>  
@@ -91,6 +101,33 @@
        <constructor-arg index="4" ><ref bean="PageFileCache"/></constructor-arg>
   </bean>
   
+  <bean id="TpsmlDocumentHandler"
+       class="org.apache.jetspeed.page.document.psml.CastorFileSystemDocumentHandler" >         
+       <constructor-arg index="0"><value>/JETSPEED-INF/castor/page-mapping.xml</value></constructor-arg>
+       <constructor-arg index="1"><value>.tpsml</value></constructor-arg>
+       <constructor-arg index="2" ><value>org.apache.jetspeed.om.page.psml.PageTemplateImpl</value></constructor-arg>       
+       <constructor-arg index="3" ><value>${org.apache.jetspeed.page.import.pages}</value></constructor-arg>
+       <constructor-arg index="4" ><ref bean="PageFileCache"/></constructor-arg>
+  </bean>
+
+  <bean id="DpsmlDocumentHandler"
+       class="org.apache.jetspeed.page.document.psml.CastorFileSystemDocumentHandler" >         
+       <constructor-arg index="0"><value>/JETSPEED-INF/castor/page-mapping.xml</value></constructor-arg>
+       <constructor-arg index="1"><value>.dpsml</value></constructor-arg>
+       <constructor-arg index="2" ><value>org.apache.jetspeed.om.page.psml.DynamicPageImpl</value></constructor-arg>       
+       <constructor-arg index="3" ><value>${org.apache.jetspeed.page.import.pages}</value></constructor-arg>
+       <constructor-arg index="4" ><ref bean="PageFileCache"/></constructor-arg>
+  </bean>
+
+  <bean id="FpsmlDocumentHandler"
+       class="org.apache.jetspeed.page.document.psml.CastorFileSystemDocumentHandler" >         
+       <constructor-arg index="0"><value>/JETSPEED-INF/castor/page-mapping.xml</value></constructor-arg>
+       <constructor-arg index="1"><value>.fpsml</value></constructor-arg>
+       <constructor-arg index="2" ><value>org.apache.jetspeed.om.page.psml.FragmentDefinitionImpl</value></constructor-arg>       
+       <constructor-arg index="3" ><value>${org.apache.jetspeed.page.import.pages}</value></constructor-arg>
+       <constructor-arg index="4" ><ref bean="PageFileCache"/></constructor-arg>
+  </bean>
+
   <bean id="LinkDocumentHandler"       
        class="org.apache.jetspeed.page.document.psml.CastorFileSystemDocumentHandler" >         
        <constructor-arg index="0"><value>/JETSPEED-INF/castor/page-mapping.xml</value></constructor-arg>
@@ -125,6 +162,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/jetspeed-api/src/main/java/org/apache/jetspeed/CommonPortletServices.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/CommonPortletServices.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/CommonPortletServices.java (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/CommonPortletServices.java Wed Nov 18 18:24:48 2009
@@ -61,4 +61,5 @@
     public final static String CPS_AUTHENTICATION_PROVIDER = "cps:AuthenticationProvider";
     public final static String CPS_CACHE_MONITOR = "cps:CacheMonitor";
     public final static String CPS_SPACES_SERVICE = "cps:SpacesService";
-}
\ No newline at end of file
+    public final static String CPS_PAGE_LAYOUT_COMPONENT = "cps:PageLayoutComponent";
+}

Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/components/portletentity/PortletEntityAccessComponent.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/components/portletentity/PortletEntityAccessComponent.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/components/portletentity/PortletEntityAccessComponent.java (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/components/portletentity/PortletEntityAccessComponent.java Wed Nov 18 18:24:48 2009
@@ -19,7 +19,6 @@
 import java.util.Collection;
 
 import org.apache.jetspeed.om.page.ContentFragment;
-import org.apache.jetspeed.om.page.Fragment;
 import org.apache.jetspeed.container.PortletEntity;
 import org.apache.jetspeed.om.portlet.PortletDefinition;
 
@@ -66,7 +65,7 @@
 	 * @param fragment
 	 * @return
 	 */
-	String generateEntityKey(Fragment fragment);
+	String generateEntityKey(ContentFragment fragment);
 
 	/**
 	 * 

Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/components/portletpreferences/PortletPreferencesProvider.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/components/portletpreferences/PortletPreferencesProvider.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/components/portletpreferences/PortletPreferencesProvider.java (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/components/portletpreferences/PortletPreferencesProvider.java Wed Nov 18 18:24:48 2009
@@ -126,15 +126,16 @@
     throws PreferencesException;
 
     /**
-     * Store entity preferences contained in the map parameter for a given page and window
+     * Store entity preferences contained in the map parameter for a given window
      * 
      * @param map
      * @param page
      * @param window
      * @throws PreferencesException
      */
-    public void storeEntityPreferences(Map<String, PortletPreference> map, ContentPage page, PortletWindow window)
+    public void storeEntityPreferences(Map<String, PortletPreference> map, PortletWindow window)
         throws PreferencesException;
+    
     /**
      * Retrieve entity ids (window) given portlet definitaion
      * 

Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/container/PortletEntity.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/container/PortletEntity.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/container/PortletEntity.java (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/container/PortletEntity.java Wed Nov 18 18:24:48 2009
@@ -17,7 +17,7 @@
 
 package org.apache.jetspeed.container;
 
-import org.apache.jetspeed.om.page.Fragment;
+import org.apache.jetspeed.om.page.ContentFragment;
 import org.apache.jetspeed.om.portlet.PortletDefinition;
 
 /**
@@ -37,6 +37,6 @@
 
     String getPortletUniqueName();
 
-    void setFragment(Fragment fragment);
-    Fragment getFragment();    
+    void setFragment(ContentFragment fragment);
+    ContentFragment getFragment();    
 }

Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/decoration/DecorationFactory.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/decoration/DecorationFactory.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/decoration/DecorationFactory.java (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/decoration/DecorationFactory.java Wed Nov 18 18:24:48 2009
@@ -19,8 +19,8 @@
 import java.util.List;
 import java.util.Set;
 
-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;
 
 /**
@@ -51,7 +51,7 @@
      * @see Theme
      * @see RequestContext
      */
-    Theme getTheme(Page page, RequestContext requestContext);
+    Theme getTheme(ContentPage page, RequestContext requestContext);
     
     /**
      * Returns a names portlet Decoration appropriate to the 
@@ -101,7 +101,7 @@
      * @see Fragment
      * @see RequestContext
      */
-    Decoration getDecoration(Page page, Fragment fragment, RequestContext requestContext);
+    Decoration getDecoration(ContentPage page, ContentFragment fragment, RequestContext requestContext);
     
     /**
      * Indicates whether /desktop is enabled for the current portal request.

Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/decoration/Theme.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/decoration/Theme.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/decoration/Theme.java (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/decoration/Theme.java Wed Nov 18 18:24:48 2009
@@ -19,8 +19,8 @@
 import java.util.Collection;
 import java.util.Set;
 
-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;
 
 /**
@@ -43,12 +43,12 @@
      * Returns a a Decoration for the requested fragment.
      * 
      * @param fragment whose decoration we want to retrieve.
-     * @return Decroration for this fragment.
+     * @return Decoration for this fragment.
      * 
      * @see Decoration
      * @see Fragment
      */
-    Decoration getDecoration(Fragment fragment);
+    Decoration getDecoration(ContentFragment fragment);
     
     /**
      * Get a list of portlet decoration names used by 
@@ -76,7 +76,7 @@
      * 
      * @param context
      */
-    void init(Page page, DecorationFactory decoration, RequestContext context);
+    void init(ContentPage page, DecorationFactory decoration, RequestContext context);
     
     boolean isInvalidated();
     

Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/layout/JetspeedPowerTool.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/layout/JetspeedPowerTool.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/layout/JetspeedPowerTool.java (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/layout/JetspeedPowerTool.java Wed Nov 18 18:24:48 2009
@@ -27,7 +27,7 @@
 import org.apache.jetspeed.locator.TemplateDescriptor;
 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.util.KeyValue;
 
@@ -111,7 +111,7 @@
      * 
      * @return
      */
-    Page getPage();
+    ContentPage getPage();
 
     /**
      * 

Added: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/layout/PageLayoutComponent.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/layout/PageLayoutComponent.java?rev=881862&view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/layout/PageLayoutComponent.java (added)
+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/layout/PageLayoutComponent.java Wed Nov 18 18:24:48 2009
@@ -0,0 +1,269 @@
+/*
+ * 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;
+
+import java.util.Locale;
+import java.util.Map;
+
+import org.apache.jetspeed.om.page.ContentFragment;
+import org.apache.jetspeed.om.page.ContentPage;
+import org.apache.jetspeed.om.page.Page;
+
+/**
+ * Page layout component interface.
+ * 
+ * @author <a href="mailto:rwatler@apache.org">Randy Watler</a>
+ * @version $Id:$
+ */
+public interface PageLayoutComponent
+{
+    /**
+     * Add fragment to page at specified row column layout position
+     * returning associated content fragment. Fragment is always added to
+     * the page root layout fragment.
+     * 
+     * @param contentPage content page context
+     * @param contentFragment externally constructed fragment to add
+     * @param row fragment row position
+     * @param column fragment column position
+     * @return content fragment added to page
+     */
+    ContentFragment addFragmentAtRowColumn(ContentPage contentPage, ContentFragment contentFragment, int row, int column);                        
+    
+    /**
+     * Add portlet to fragment with specified row and column returning
+     * associated content fragment.
+     * 
+     * @param contentFragment content fragment context
+     * @param type portlet type
+     * @param name portlet name
+     * @param row fragment row position
+     * @param column fragment column position
+     * @return new content fragment added to fragment
+     */
+    ContentFragment addPortlet(ContentFragment contentFragment, String type, String name, int row, int column);
+
+    /**
+     * Add portlet to fragment returning associated content fragment.
+     * 
+     * @param contentFragment content fragment context
+     * @param type portlet type
+     * @param name portlet name
+     * @return new content fragment added to fragment
+     */
+    ContentFragment addPortlet(ContentFragment contentFragment, String type, String name);
+    
+    /**
+     * Add portlet to page returning associated content fragment.
+     * 
+     * @param contentPage content page context
+     * @param type portlet type
+     * @param name portlet name
+     * @return new content fragment added to page
+     */
+    ContentFragment addPortlet(ContentPage contentPage, String type, String name);
+
+    /**
+     * Decrement position of folder in parent folder document order.
+     * 
+     * @param contentPage content page context
+     */
+    void decrementFolderInDocumentOrder(ContentPage contentPage);
+
+    /**
+     * Decrement position of page in folder document order.
+     * 
+     * @param contentPage content page context
+     */
+    void decrementInDocumentOrder(ContentPage contentPage);
+
+    /**
+     * Increment position of folder in parent folder document order.
+     * 
+     * @param contentPage content page context
+     */
+    void incrementFolderInDocumentOrder(ContentPage contentPage);
+
+    /**
+     * Increment position of page in folder document order.
+     * 
+     * @param contentPage content page context
+     */
+    void incrementInDocumentOrder(ContentPage contentPage);
+
+    /**
+     * Move fragment from current parent layout fragment to another
+     * layout fragment in the same page.
+     *
+     * @param contentPage content page context
+     * @param fragmentId fragment id of fragment to move
+     * @param fromFragmentId fragment id of current parent layout fragment
+     * @param toFragmentId fragment id of new parent layout fragment
+     */
+    void moveFragment(ContentPage contentPage, String fragmentId, String fromFragmentId, String toFragmentId);
+
+    /**
+     * Construct a new content page hierarchy from PSML page.
+     * 
+     * @param page PSML page to construct content page from
+     * @return new content page
+     */
+    ContentPage newContentPage(Page page);
+    
+    /**
+     * Create a new sibling folder with specified configuration and
+     * new default page. Also, adds folder to end of page folder
+     * document order list. The default page is added to the new
+     * folder document order list. Both title and short title
+     * parameters default to page name if not specified. The layout
+     * fragment name for the default page is cloned from this content
+     * page if not specified. Default decorators are cloned from this
+     * content page.
+     *  
+     * @param contentPage content page context
+     * @param folderName unique new folder name, (also used as
+     *                   default page title)
+     * @param folderTitle new folder title or null
+     * @param folderShortTitle new folder short title or null
+     * @param defaultPageLayoutName root level layout fragment name
+     *                              for default page
+     */
+    void newSiblingFolder(ContentPage contentPage, String folderName, String folderTitle, String folderShortTitle, String defaultPageLayoutName);
+    
+    /**
+     * Create new sibling page with specified configuration and add
+     * new page at end of folder document order list. Both title and
+     * short title parameters default to page name if not specified.
+     * The layout fragment name is cloned from this content page if
+     * not specified. Default decorators are cloned from this content
+     * page.
+     * 
+     * @param contentPage content page context
+     * @param pageName unique new page name
+     * @param layoutName root level layout fragment name or null 
+     * @param pageTitle new page title or null
+     * @param pageShortTitle new page short title or null
+     */
+    void newSiblingPage(ContentPage contentPage, String pageName, String layoutName, String pageTitle, String pageShortTitle);
+    
+    /**
+     * Remove fragment from page by id.
+     * 
+     * @param contentPage content page context
+     * @param fragmentId id of fragment to remove
+     * @return flag indicating removed
+     */
+    void removeFragment(ContentPage contentPage, String fragmentId);
+    
+    /**
+     * Remove page and remove from folder document order list.
+     * 
+     * @param contentPage content page context
+     */
+    void remove(ContentPage contentPage);
+    
+    /**
+     * Remove folder and remove from parent folder document order list.
+     *
+     * @param contentPage content page context
+     */
+    void removeFolder(ContentPage contentPage);
+    
+    /**
+     * Update fragment portlet decorator.
+     *  
+     * @param contentFragment content fragment context
+     * @param decoratorName portlet decorator name
+     */
+    void updateDecorator(ContentFragment contentFragment, String decoratorName);
+
+    /**
+     * Update page default decorator.
+     *  
+     * @param contentPage content page context
+     * @param decoratorName decorator name
+     * @param fragmentType decorator fragment type
+     */
+    void updateDefaultDecorator(ContentPage contentPage, String decoratorName, String fragmentType);
+    
+    /**
+     * Update folder titles.
+     * 
+     * @param contentPage content page context
+     * @param title folder title
+     * @param shortTitle folder short title
+     */
+    void updateFolderTitles(ContentPage contentPage, String title, String shortTitle);
+
+    /**
+     * Update fragment name.
+     * 
+     * @param contentFragment content fragment context
+     * @param name fragment name
+     */
+    void updateName(ContentFragment contentFragment, String name);
+
+    /**
+     * Update fragment layout position.
+     * 
+     * @param contentFragment content fragment context
+     * @param x fragment X coordinate or -1
+     * @param y fragment Y coordinate or -1
+     * @param z fragment Z level or -1
+     * @param width fragment portlet width or -1
+     * @param height fragment portlet height or -1
+     */
+    void updatePosition(ContentFragment contentFragment, float x, float y, float z, float width, float height);
+    
+    /**
+     * Update preferences with new preferences set, accepting
+     * Map of strings, string arrays, FragmentPreference or
+     * PortletPreference. Existing preferences are removed and
+     * replaced with the specified preferences.
+     * 
+     * @param contentFragment content fragment context
+     * @param preferences map of new preferences set.
+     */
+    void updatePreferences(ContentFragment contentFragment, Map preferences);
+
+    /**
+     * Update fragment row and column layout position.
+     * 
+     * @param contentFragment content fragment context
+     * @param row fragment row position
+     * @param column fragment column position
+     */
+    void updateRowColumn(ContentFragment contentFragment, int row, int column);
+    
+    /**
+     * Update fragment portlet state and/or mode.
+     * 
+     * @param contentFragment content fragment context
+     * @param portletState fragment portlet state or null
+     * @param portletMode fragment portlet mode or null
+     */
+    void updateStateMode(ContentFragment contentFragment, String portletState, String portletMode);
+
+    /**
+     * Update page titles.
+     * 
+     * @param contentPage content page context
+     * @param title page title
+     * @param shortTitle page short title
+     */
+    void updateTitles(ContentPage contentPage, String title, String shortTitle);
+}

Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/layout/PortletPlacementContext.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/layout/PortletPlacementContext.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/layout/PortletPlacementContext.java (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/layout/PortletPlacementContext.java Wed Nov 18 18:24:48 2009
@@ -16,8 +16,8 @@
  */
 package org.apache.jetspeed.layout;
 
-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;
 
 /**
  * Handles portlet placement for client such as AJAX client side
@@ -38,7 +38,7 @@
 	 * @return new coordinate location of the portlet
 	 * @throws PortletPlacementException
 	 */
-	public Coordinate moveAbsolute(Fragment fragment, Coordinate coordinate ) throws PortletPlacementException;
+	public Coordinate moveAbsolute(ContentFragment fragment, Coordinate coordinate ) throws PortletPlacementException;
 
 	/**
      * Move a portlet fragment to a new absolute position as specified in the Coordinate parameter.
@@ -49,7 +49,7 @@
 	 * @return new coordinate location of the portlet
 	 * @throws PortletPlacementException
 	 */
-	public Coordinate moveAbsolute(Fragment fragment, Coordinate coordinate, boolean addFragment) throws PortletPlacementException;
+	public Coordinate moveAbsolute(ContentFragment fragment, Coordinate coordinate, boolean addFragment) throws PortletPlacementException;
 	
 	/**
      * Move a portlet relative to its current position UP one row.
@@ -58,7 +58,7 @@
      * @return new coordinate location of the portlet
 	 * @throws PortletPlacementException
 	 */
-	public Coordinate moveUp(Fragment fragment) throws PortletPlacementException;
+	public Coordinate moveUp(ContentFragment fragment) throws PortletPlacementException;
 
     /**
      * Move a portlet relative to its current position DOWN one row.
@@ -67,7 +67,7 @@
      * @return new coordinate location of the portlet
      * @throws PortletPlacementException
      */    
-	public Coordinate moveDown(Fragment fragment) throws PortletPlacementException;
+	public Coordinate moveDown(ContentFragment fragment) throws PortletPlacementException;
     
     /**
      * Move a portlet relative to its current position LEFT one column.
@@ -76,7 +76,7 @@
      * @return new coordinate location of the portlet
      * @throws PortletPlacementException
      */        
-	public Coordinate moveLeft(Fragment fragment) throws PortletPlacementException;
+	public Coordinate moveLeft(ContentFragment fragment) throws PortletPlacementException;
     
     /**
      * Move a portlet relative to its current position RIGHT one column.
@@ -85,7 +85,7 @@
      * @return new coordinate location of the portlet
      * @throws PortletPlacementException
      */            
-	public Coordinate moveRight(Fragment fragment) throws PortletPlacementException;
+	public Coordinate moveRight(ContentFragment fragment) throws PortletPlacementException;
     
 	/**
      * Add a portlet to its managed page.
@@ -95,7 +95,7 @@
 	 * @return
 	 * @throws PortletPlacementException
 	 */
-	public Coordinate add(Fragment fragment, Coordinate coordinate) throws PortletPlacementException;
+	public Coordinate add(ContentFragment fragment, Coordinate coordinate) throws PortletPlacementException;
     
 	/**
      * Remove the specified fragment.
@@ -103,7 +103,7 @@
 	 * @return
 	 * @throws PortletPlacementException
 	 */
-	public Coordinate remove(Fragment fragment) throws PortletPlacementException;
+	public Coordinate remove(ContentFragment fragment) throws PortletPlacementException;
     
     /**
      * retrieve the number of columns for the managed layout.
@@ -129,7 +129,7 @@
 	 * @return the fragment associated to the given coordinate
 	 * @throws PortletPlacementException
 	 */
-	public Fragment getFragmentAtNewCoordinate(Coordinate coordinate) throws PortletPlacementException;
+	public ContentFragment getFragmentAtNewCoordinate(Coordinate coordinate) throws PortletPlacementException;
     
 	/**
      * Retrieve the old portlet fragment for the given coordinate (prior to placement).
@@ -138,7 +138,7 @@
 	 * @return the fragment associated to the given coordinate
 	 * @throws PortletPlacementException
 	 */
-	public Fragment getFragmentAtOldCoordinate(Coordinate coordinate) throws PortletPlacementException;
+	public ContentFragment getFragmentAtOldCoordinate(Coordinate coordinate) throws PortletPlacementException;
     
 	/**
      * Retrieve a fragment by fragment id.
@@ -147,7 +147,7 @@
 	 * @return The fragment associated with the given fragment id.
 	 * @throws PortletPlacementException
 	 */
-	public Fragment getFragmentById(String fragmentId) throws PortletPlacementException;
+	public ContentFragment getFragmentById(String fragmentId) throws PortletPlacementException;
     
     /**
      * Takes the internal portlet placement state and writes it back
@@ -155,6 +155,6 @@
      * 
      * @return the managed page layout with updated fragment state.
      */
-    public Page syncPageFragments();
+    public ContentPage syncPageFragments();
         
 }

Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/mockobjects/request/MockRequestContext.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/mockobjects/request/MockRequestContext.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/mockobjects/request/MockRequestContext.java (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/mockobjects/request/MockRequestContext.java Wed Nov 18 18:24:48 2009
@@ -32,6 +32,7 @@
 import org.apache.jetspeed.container.PortletWindow;
 import org.apache.jetspeed.container.state.NavigationalState;
 import org.apache.jetspeed.container.url.PortalURL;
+import org.apache.jetspeed.layout.PageLayoutComponent;
 import org.apache.jetspeed.mockobjects.MockHttpServletRequest;
 import org.apache.jetspeed.om.page.ContentFragment;
 import org.apache.jetspeed.om.page.ContentPage;
@@ -533,7 +534,10 @@
         this.response = response;
     }
 
-    public ContentPage locatePage(Profiler profiler, String nonProfiledPath)
+    /* (non-Javadoc)
+     * @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, PageLayoutComponent pageLayoutComponent, String nonProfiledPath)
     {
         return null;
     }

Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/folder/Folder.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/folder/Folder.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/folder/Folder.java (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/folder/Folder.java Wed Nov 18 18:24:48 2009
@@ -18,9 +18,13 @@
 
 import java.util.List;
 
+import org.apache.jetspeed.om.common.SecuredResource;
+import org.apache.jetspeed.om.page.DynamicPage;
+import org.apache.jetspeed.om.page.FragmentDefinition;
 import org.apache.jetspeed.om.page.Link;
 import org.apache.jetspeed.om.page.Page;
 import org.apache.jetspeed.om.page.PageSecurity;
+import org.apache.jetspeed.om.page.PageTemplate;
 import org.apache.jetspeed.page.PageNotFoundException;
 import org.apache.jetspeed.page.document.DocumentException;
 import org.apache.jetspeed.page.document.DocumentNotFoundException;
@@ -35,7 +39,7 @@
  * @author <a href="mailto:jford@apache.org">Jeremy Ford</a>
  * @version $Id$
  */
-public interface Folder extends Node
+public interface Folder extends Node, SecuredResource
 {
     String FOLDER_TYPE = "folder";
 
@@ -186,6 +190,45 @@
     /**
      * 
      * <p>
+     * getPageTemplates
+     * </p>
+     *
+     * @return NodeSet of all the PageTemplates referenced by this Folder.
+     * @throws NodeException
+     * @throws PageNotFoundException if any of the PageTemplates referenced by this Folder
+     * could not be found.
+     */
+    NodeSet getPageTemplates() throws NodeException;
+    
+    /**
+     * 
+     * <p>
+     * getDynamicPages
+     * </p>
+     *
+     * @return NodeSet of all the DynamicPages referenced by this Folder.
+     * @throws NodeException
+     * @throws PageNotFoundException if any of the DynamicPages referenced by this Folder
+     * could not be found.
+     */
+    NodeSet getDynamicPages() throws NodeException;
+    
+    /**
+     * 
+     * <p>
+     * getFragmentDefinitions
+     * </p>
+     *
+     * @return NodeSet of all the FragmentDefinitions referenced by this Folder.
+     * @throws NodeException
+     * @throws PageNotFoundException if any of the FragmentDefinitions referenced by this Folder
+     * could not be found.
+     */
+    NodeSet getFragmentDefinitions() throws NodeException;
+    
+    /**
+     * 
+     * <p>
      * getPage
      * </p>
      *
@@ -200,6 +243,48 @@
     /**
      * 
      * <p>
+     * getPageTemplate
+     * </p>
+     *
+     * @param name
+     * @return A PageTemplate referenced by this folder.
+     * @throws PageNotFoundException if the PageTemplate requested could not be found.
+     * @throws DocumentException
+     * @throws NodeException
+     */
+    PageTemplate getPageTemplate(String name) throws PageNotFoundException, NodeException;
+    
+    /**
+     * 
+     * <p>
+     * getDynamicPage
+     * </p>
+     *
+     * @param name
+     * @return A DynamicPage referenced by this folder.
+     * @throws PageNotFoundException if the DynamicPage requested could not be found.
+     * @throws DocumentException
+     * @throws NodeException
+     */
+    DynamicPage getDynamicPage(String name) throws PageNotFoundException, NodeException;
+    
+    /**
+     * 
+     * <p>
+     * getFragmentDefinition
+     * </p>
+     *
+     * @param name
+     * @return A FragmentDefinition referenced by this folder.
+     * @throws PageNotFoundException if the FragmentDefinition requested could not be found.
+     * @throws DocumentException
+     * @throws NodeException
+     */
+    FragmentDefinition getFragmentDefinition(String name) throws PageNotFoundException, NodeException;
+    
+    /**
+     * 
+     * <p>
      * getLinks
      * </p>
      *

Added: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/BaseConcretePageElement.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/BaseConcretePageElement.java?rev=881862&view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/BaseConcretePageElement.java (added)
+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/BaseConcretePageElement.java Wed Nov 18 18:24:48 2009
@@ -0,0 +1,37 @@
+/*
+ * 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.om.page;
+
+/**
+ * This interface represents a concrete page document used by Jetspeed
+ * to define a portal page.
+ *
+ * @author <a href="mailto:rwatler@apache.org">Randy Watler</a>
+ * @version $Id:$
+ */
+public interface BaseConcretePageElement extends BasePageElement
+{
+    /**
+     * Returns the name of the default decorator as set here or
+     * in parent folders that applies in this page to fragments
+     * of the specified type.
+     *
+     * @param fragmentType the type of fragment considered
+     * @return the decorator name for the selected type
+     */
+    String getEffectiveDefaultDecorator(String fragmentType);    
+}

Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/BaseElement.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/BaseElement.java?rev=881862&r1=881861&r2=881862&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/BaseElement.java (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/BaseElement.java Wed Nov 18 18:24:48 2009
@@ -32,34 +32,33 @@
      *
      * @return the unique id of this element.
      */
-    public String getId();
+    String getId();
 
     /**
      * Returns the title in the default Locale
      *
      * @return the page title
      */
-    public String getTitle();
+    String getTitle();
 
     /**
      * Sets the title for the default Locale
      *
      * @param title the new title
      */
-    public void setTitle(String title);
+    void setTitle(String title);
 
     /**
      * Returns the short title in the default Locale
      *
      * @return the page short title
      */
-    public String getShortTitle();
+    String getShortTitle();
 
     /**
      * Sets the short title for the default Locale
      *
      * @param title the new title
      */
-    public void setShortTitle(String title);
-        
+    void setShortTitle(String title);
 }

Added: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/BaseFragmentElement.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/BaseFragmentElement.java?rev=881862&view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/BaseFragmentElement.java (added)
+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/BaseFragmentElement.java Wed Nov 18 18:24:48 2009
@@ -0,0 +1,300 @@
+/*
+ * 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.om.page;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>A <code>BaseFragmentElement</code> is the basic element handled by the
+ * aggregation engine to compose the final portal page. It represents a reserved
+ * screen area whose layout is managed by a specified component. The fragment
+ * also holds layout and rendering properties/preferences.</p>
+ *
+ * @version $Id:$
+ */
+public interface BaseFragmentElement extends BaseElement
+{
+    /**
+     * row standard layout property name
+     */
+    String ROW_PROPERTY_NAME = "row";
+
+    /**
+     * column standard layout property name
+     */
+    String COLUMN_PROPERTY_NAME = "column";
+
+    /**
+     * sizes standard layout property name
+     */
+    String SIZES_PROPERTY_NAME = "sizes";
+
+    /**
+     * x coordinate standard layout property name
+     */
+    String X_PROPERTY_NAME = "x";
+
+    /**
+     * y coordinate standard layout property name
+     */
+    String Y_PROPERTY_NAME = "y";
+
+    /**
+     * z coordinate standard layout property name
+     */
+    String Z_PROPERTY_NAME = "z";
+
+    /**
+     * width standard layout property name
+     */
+    String WIDTH_PROPERTY_NAME = "width";
+
+    /**
+     * height standard layout property name
+     */
+    String HEIGHT_PROPERTY_NAME = "height";
+
+    /**
+     * Sets the unique Id of this fragment. This id must be unique from the
+     * complete portal and must be suitable as a unique key.
+     *
+     * @param fragmentId the unique id of this fragment.
+     */
+    void setId(String fragmentId);
+
+    /**
+     * Returns the name of the skin associated to this fragment
+     */
+    String getSkin();
+
+    /**
+     * Defines the skin for this fragment. This skin should be
+     * known by the portal.
+     *
+     * @param skinName the name of the new skin applied to this fragment
+     */
+    void setSkin(String skinName);
+
+    /**
+     * Returns the name of the decorator bound to this fragment
+     */
+    String getDecorator();
+
+    /**
+     * Defines the decorator for this fragment. This decorator should be
+     * known by the portal.
+     *
+     * @param decoratorName the name of the decorator applied to this fragment
+     */
+    void setDecorator(String decoratorName);
+
+    /**
+     * Returns the display state of this fragment. The state may have the
+     * following values: "Normal","Minimized","Maximized","Hidden"
+     */
+    String getState();
+
+    /**
+     * Sets the display state of this fragment.
+     * Valid states are: "Normal","Minimized","Maximized","Hidden"
+     *
+     * @param state the new fragment state
+     */
+    void setState(String state);
+
+    /**
+     * Returns the display mode of this fragment. The mode may have the
+     * following values: "View","Edit","Help","Config","Print","Custom"
+     */
+    String getMode();
+
+    /**
+     * Sets the display mode of this fragment.
+     * Valid modes are: "View","Edit","Help","Config","Print","Custom"
+     *
+     * @param mode the new fragment mode
+     */
+    void setMode(String mode);
+
+    /**
+     * getProperty
+     *
+     * Get named property value.
+     *
+     * @param propName property name
+     * @return value
+     */
+    String getProperty(String propName);
+    
+    /**
+     * getIntProperty
+     * 
+     * Get named property value as integer.
+     *
+     * @param propName property name
+     * @return int value
+     */
+    int getIntProperty(String propName);
+    
+    /**
+     * getFloatProperty
+     * 
+     * Get named property value as float.
+     *
+     * @param propName property name
+     * @return float value
+     */
+    float getFloatProperty(String propName);
+    
+    /**
+     * getProperties
+     * 
+     * Get writable Map of properties by name.
+     *
+     * @return properties map
+     */
+    Map getProperties();
+
+    /**
+     * get layout row property
+     *
+     * @return row layout property
+     **/
+    int getLayoutRow();
+
+    /**
+     * set the layout row property
+     *
+     * @param row
+     */
+    void setLayoutRow(int row);
+
+    /**
+     * get layout column property
+     *
+     * @return column layout property
+     **/
+    int getLayoutColumn();
+
+    /**
+     * set the layout column property
+     * 
+     * @param column
+     */
+    void setLayoutColumn(int column);
+    
+    /**
+     * get layout sizes property, (i.e. "25%,75%")
+     * 
+     * @return sizes layout property
+     **/
+    String getLayoutSizes();
+    
+    /**
+     * set the layout sizes
+     * 
+     * @param sizes
+     */
+    void setLayoutSizes(String sizes);
+    
+    /**
+     * get layout x coordinate property
+     *
+     * @return the x coordinate value
+     **/
+    float getLayoutX();
+
+    /**
+     * set the layout x coordinate property
+     *
+     * @param x the coordinate value
+     */
+    void setLayoutX(float x);
+
+    /**
+     * get layout y coordinate property
+     *
+     * @return the y coordinate value
+     **/
+    float getLayoutY();
+
+    /**
+     * set the layout y coordinate property
+     *
+     * @param y the coordinate value
+     */
+    void setLayoutY(float y);
+
+    /**
+     * get layout z coordinate property
+     *
+     * @return the z coordinate value
+     **/
+    float getLayoutZ();
+
+    /**
+     * set the layout z coordinate property
+     *
+     * @param z the coordinate value
+     */
+    void setLayoutZ(float z);
+
+    /**
+     * get layout width property
+     *
+     * @return the width value
+     **/
+    float getLayoutWidth();
+
+    /**
+     * set the layout width property
+     *
+     * @param width the value
+     */
+    void setLayoutWidth(float width);
+
+    /**
+     * get layout height property
+     *
+     * @return the height value
+     **/
+    float getLayoutHeight();
+
+    /**
+     * set the layout height property
+     *
+     * @param height the value
+     */
+    void setLayoutHeight(float height);
+
+    /**
+     * Get collection of fragment preference objects used
+     * to initialize user preferences
+     * 
+     * @return list of FragmentPreference objects
+     */
+    List getPreferences();    
+
+    /**
+     * Set collection of fragment preference objects
+     * 
+     * @param preferences list of FragmentPreference objects
+     */
+    void setPreferences(List preferences);
+}

Added: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/BaseFragmentsElement.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/BaseFragmentsElement.java?rev=881862&view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/BaseFragmentsElement.java (added)
+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/BaseFragmentsElement.java Wed Nov 18 18:24:48 2009
@@ -0,0 +1,71 @@
+/*
+ * 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.om.page;
+
+import java.util.List;
+
+/**
+ * This interface represents a generic document with fragments.
+ *
+ * @author <a href="mailto:rwatler@apache.org">Randy Watler</a>
+ * @version $Id:$
+ */
+public interface BaseFragmentsElement extends Document
+{
+    /**
+     * Retrieves the top level fragment of this page. This Fragment should
+     * never be null.
+     *
+     * @return the base Fragment object for this page.
+     */
+    BaseFragmentElement getRootFragment();
+
+    /**
+     * Sets the top level fragment of this page. This Fragment should
+     * never be null.
+     *
+     * @return the base Fragment object for this page.
+     */    
+    void setRootFragment(BaseFragmentElement fragment);
+
+    /**
+     * Retrieves the fragment contained within this page, with the
+     * specified Id.
+     *
+     * @param id the fragment id to look for
+     * @return the found Fragment object or null if not found
+     */
+    BaseFragmentElement getFragmentById(String id);
+
+    /**
+     * Removes the fragment contained within this page, with the
+     * specified Id.
+     *
+     * @param id the fragment id to remove
+     * @return the removed Fragment object or null if not found
+     */
+    BaseFragmentElement removeFragmentById(String id);
+
+    /**
+     * Retrieves the fragments contained within this page, with the
+     * specified name.
+     *
+     * @param name the fragment name to look for
+     * @return the list of found Fragment objects or null if not found
+     */
+    List getFragmentsByName(String name);
+}

Added: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/BasePageElement.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/BasePageElement.java?rev=881862&view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/BasePageElement.java (added)
+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/BasePageElement.java Wed Nov 18 18:24:48 2009
@@ -0,0 +1,116 @@
+/*
+ * 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.om.page;
+
+import java.util.List;
+
+import org.apache.jetspeed.om.folder.MenuDefinition;
+import org.apache.jetspeed.om.folder.MenuExcludeDefinition;
+import org.apache.jetspeed.om.folder.MenuIncludeDefinition;
+import org.apache.jetspeed.om.folder.MenuOptionsDefinition;
+import org.apache.jetspeed.om.folder.MenuSeparatorDefinition;
+
+/**
+ * This interface represents a generic page document used by Jetspeed
+ * to layout a portal page.
+ *
+ * @author <a href="mailto:rwatler@apache.org">Randy Watler</a>
+ * @version $Id:$
+ */
+public interface BasePageElement extends BaseFragmentsElement
+{
+    /**
+     * Returns the name of the default skin that applies to this
+     * page.
+     *
+     * @return the page default skin name
+     */
+    String getSkin();
+
+    /**
+     * Modifies the skin for this page.
+     *
+     * @param skinName the name of the new skin for the page
+     */
+    void setSkin(String skinName);
+
+    /**
+     * Returns the name of the default decorator that applies in this page
+     * to fragments of the specified type
+     *
+     * @param fragmentType the type of fragment considered
+     * @return the decorator name for the selected type
+     */
+    String getDefaultDecorator(String fragmentType);
+
+    /**
+     * Modifies the default decorator for the specified fragment type.
+     *
+     * @param decoratorName the name of the new decorator for the type
+     * @param fragmentType the type of fragment considered
+     */
+    void setDefaultDecorator(String decoratorName, String fragmentType);
+
+    /**
+     * getMenuDefinitions - get list of menu definitions
+     *
+     * @return definition list
+     */
+    List getMenuDefinitions();
+
+    /**
+     * newMenuDefinition - creates a new empty menu definition
+     *
+     * @return a newly created MenuDefinition object for use in Page
+     */
+    MenuDefinition newMenuDefinition();
+
+    /**
+     * newMenuExcludeDefinition - creates a new empty menu exclude definition
+     *
+     * @return a newly created MenuExcludeDefinition object for use in Page
+     */
+    MenuExcludeDefinition newMenuExcludeDefinition();
+
+    /**
+     * newMenuIncludeDefinition - creates a new empty menu include definition
+     *
+     * @return a newly created MenuIncludeDefinition object for use in Page
+     */
+    MenuIncludeDefinition newMenuIncludeDefinition();
+
+    /**
+     * newMenuOptionsDefinition - creates a new empty menu options definition
+     *
+     * @return a newly created MenuOptionsDefinition object for use in Page
+     */
+    MenuOptionsDefinition newMenuOptionsDefinition();
+
+    /**
+     * newMenuSeparatorDefinition - creates a new empty menu separator definition
+     *
+     * @return a newly created MenuSeparatorDefinition object for use in Page
+     */
+    MenuSeparatorDefinition newMenuSeparatorDefinition();
+
+    /**
+     * setMenuDefinitions - set list of menu definitions
+     *
+     * @param definitions definition list
+     */
+    void setMenuDefinitions(List definitions);    
+}



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