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 ta...@apache.org on 2010/08/26 06:43:00 UTC
svn commit: r989442 - in /portals/jetspeed-2/portal/trunk:
components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/
components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/
components/jetspeed-page-manager/src/ma...
Author: taylor
Date: Thu Aug 26 04:43:00 2010
New Revision: 989442
URL: http://svn.apache.org/viewvc?rev=989442&view=rev
Log:
casting to DatabasePageManager from Spring proxy was failing in BaseElementImpl due to a class cast exception. This exception *should* never happen, yet it occurred during load testing on a cluster. This fix required moving around some classes, introducing interfaces, so we could properly cast through the Spring interface contract
Added:
portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/FragmentPropertyListImpl.java
- copied, changed from r989352, portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/FragmentPropertyList.java
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/page/FragmentPropertyList.java (with props)
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/page/FragmentPropertyManagement.java (with props)
Removed:
portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/FragmentPropertyList.java
Modified:
portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/BaseElementImpl.java
portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/BaseFragmentElementImpl.java
portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/AbstractPageManager.java
portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/impl/DatabasePageManager.java
portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/impl/DatabasePageManagerCache.java
portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/psml/CastorXmlPageManager.java
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/page/PageManager.java
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/BaseElementImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/BaseElementImpl.java?rev=989442&r1=989441&r2=989442&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/BaseElementImpl.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/BaseElementImpl.java Thu Aug 26 04:43:00 2010
@@ -32,7 +32,7 @@ import org.apache.jetspeed.om.common.Sec
import org.apache.jetspeed.om.page.BaseElement;
import org.apache.jetspeed.om.page.PageSecurity;
import org.apache.jetspeed.om.page.SecurityConstraintImpl;
-import org.apache.jetspeed.page.impl.DatabasePageManager;
+import org.apache.jetspeed.page.PageManager;
import org.apache.jetspeed.page.impl.DatabasePageManagerUtils;
import org.apache.jetspeed.security.Group;
import org.apache.jetspeed.security.JSSubject;
@@ -56,7 +56,7 @@ public abstract class BaseElementImpl im
private boolean constraintsEnabled;
private boolean permissionsEnabled;
- private DatabasePageManager pageManager;
+ private PageManager pageManager;
protected static PermissionFactory pf;
public static void setPermissionsFactory(PermissionFactory pf)
@@ -114,7 +114,7 @@ public abstract class BaseElementImpl im
*
* @param pageManager page manager that manages this folder instance
*/
- public void setPageManager(DatabasePageManager pageManager)
+ public void setPageManager(PageManager pageManager)
{
this.pageManager = pageManager;
}
@@ -124,11 +124,11 @@ public abstract class BaseElementImpl im
*
* @return page manager instance
*/
- public DatabasePageManager getPageManager()
+ public PageManager getPageManager()
{
if (pageManager == null)
{
- pageManager = (DatabasePageManager)Jetspeed.getComponentManager().getComponent("org.apache.jetspeed.page.PageManager");
+ pageManager = (PageManager)Jetspeed.getComponentManager().getComponent("org.apache.jetspeed.page.PageManager");
}
return pageManager;
}
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/BaseFragmentElementImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/BaseFragmentElementImpl.java?rev=989442&r1=989441&r2=989442&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/BaseFragmentElementImpl.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/BaseFragmentElementImpl.java Thu Aug 26 04:43:00 2010
@@ -25,8 +25,8 @@ import org.apache.jetspeed.om.page.BaseF
import org.apache.jetspeed.om.page.BaseFragmentValidationListener;
import org.apache.jetspeed.om.page.FragmentProperty;
import org.apache.jetspeed.om.page.PageSecurity;
+import org.apache.jetspeed.page.FragmentPropertyList;
import org.apache.jetspeed.page.PageManager;
-import org.apache.jetspeed.page.impl.DatabasePageManager;
import org.apache.jetspeed.page.impl.DatabasePageManagerUtils;
import org.apache.ojb.broker.PersistenceBroker;
import org.apache.ojb.broker.PersistenceBrokerAware;
@@ -176,7 +176,7 @@ public abstract class BaseFragmentElemen
/* (non-Javadoc)
* @see org.apache.jetspeed.om.page.impl.BaseElementImpl#getPageManager()
*/
- public DatabasePageManager getPageManager()
+ public PageManager getPageManager()
{
return ((baseFragmentsElement != null) ? baseFragmentsElement.getPageManager() : null);
}
@@ -779,10 +779,10 @@ public abstract class BaseFragmentElemen
// if fragment is not newly constructed
if (getIdentity() != 0)
{
- DatabasePageManager pageManager = getPageManager();
+ PageManager pageManager = getPageManager();
if (pageManager != null)
{
- FragmentPropertyList properties = pageManager.getFragmentPropertyList(this, fragmentProperties);
+ FragmentPropertyList properties = pageManager.getFragmentPropertyManager().getFragmentPropertyList(this, fragmentProperties);
fragmentProperties = null;
return properties;
}
@@ -790,7 +790,7 @@ public abstract class BaseFragmentElemen
// create transient properties list place holder
if (fragmentProperties == null)
{
- fragmentProperties = new FragmentPropertyList(this);
+ fragmentProperties = new FragmentPropertyListImpl(this);
}
return fragmentProperties;
}
@@ -1080,10 +1080,10 @@ public abstract class BaseFragmentElemen
{
// notify page manager of fragment insert so that fragment
// properties can be inserted as part of the insert operation
- DatabasePageManager pageManager = getPageManager();
+ PageManager pageManager = getPageManager();
if (pageManager != null)
{
- pageManager.updateFragmentPropertyList(this, PageManager.ALL_PROPERTY_SCOPE, fragmentProperties);
+ pageManager.getFragmentPropertyManager().updateFragmentPropertyList(this, PageManager.ALL_PROPERTY_SCOPE, fragmentProperties);
fragmentProperties = null;
}
}
@@ -1102,10 +1102,10 @@ public abstract class BaseFragmentElemen
{
// notify page manager of fragment update so that fragment
// properties can be updated as part of the update operation
- DatabasePageManager pageManager = getPageManager();
+ PageManager pageManager = getPageManager();
if (pageManager != null)
{
- pageManager.updateFragmentPropertyList(this, PageManager.ALL_PROPERTY_SCOPE, fragmentProperties);
+ pageManager.getFragmentPropertyManager().updateFragmentPropertyList(this, PageManager.ALL_PROPERTY_SCOPE, fragmentProperties);
fragmentProperties = null;
}
}
@@ -1117,10 +1117,10 @@ public abstract class BaseFragmentElemen
{
// notify page manager of fragment delete so that fragment
// properties can be removed as part of the remove operation
- DatabasePageManager pageManager = getPageManager();
+ PageManager pageManager = getPageManager();
if (pageManager != null)
{
- pageManager.removeFragmentPropertyList(this, fragmentProperties);
+ pageManager.getFragmentPropertyManager().removeFragmentPropertyList(this, fragmentProperties);
fragmentProperties = null;
}
}
Copied: portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/FragmentPropertyListImpl.java (from r989352, portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/FragmentPropertyList.java)
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/FragmentPropertyListImpl.java?p2=portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/FragmentPropertyListImpl.java&p1=portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/FragmentPropertyList.java&r1=989352&r2=989442&rev=989442&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/FragmentPropertyList.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/FragmentPropertyListImpl.java Thu Aug 26 04:43:00 2010
@@ -21,7 +21,9 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
+import org.apache.jetspeed.om.page.BaseFragmentElement;
import org.apache.jetspeed.om.page.FragmentProperty;
+import org.apache.jetspeed.page.FragmentPropertyList;
/**
* FragmentPropertyList
@@ -29,14 +31,14 @@ import org.apache.jetspeed.om.page.Fragm
* @author <a href="mailto:rwatler@apache.org">Randy Watler</a>
* @version $Id$
*/
-public class FragmentPropertyList extends AbstractList
+public class FragmentPropertyListImpl extends AbstractList implements FragmentPropertyList
{
private BaseFragmentElementImpl fragment;
private List properties;
private List removedProperties;
- public FragmentPropertyList(BaseFragmentElementImpl fragment)
+ public FragmentPropertyListImpl(BaseFragmentElementImpl fragment)
{
super();
this.properties = new ArrayList();
@@ -46,6 +48,9 @@ public class FragmentPropertyList extend
/* (non-Javadoc)
* @see java.util.List#add(int,java.lang.Object)
*/
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.page.impl.FragmentPropertyList#add(int, java.lang.Object)
+ */
public synchronized void add(int index, Object element)
{
// implement for modifiable AbstractList:
@@ -55,7 +60,7 @@ public class FragmentPropertyList extend
throw new IllegalArgumentException("Property name and value must be set.");
}
// find existing matching property
- FragmentPropertyImpl addMatch = getMatchingProperty(add);
+ FragmentProperty addMatch = getMatchingProperty(add);
if (addMatch != null)
{
// modify existing property
@@ -73,6 +78,9 @@ public class FragmentPropertyList extend
/* (non-Javadoc)
* @see java.util.List#get(int)
*/
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.page.impl.FragmentPropertyList#get(int)
+ */
public synchronized Object get(int index)
{
// implement for modifiable AbstractList
@@ -82,6 +90,9 @@ public class FragmentPropertyList extend
/* (non-Javadoc)
* @see java.util.List#remove(int)
*/
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.page.impl.FragmentPropertyList#remove(int)
+ */
public synchronized Object remove(int index)
{
// implement for modifiable AbstractList:
@@ -93,6 +104,9 @@ public class FragmentPropertyList extend
/* (non-Javadoc)
* @see java.util.List#set(int,java.lang.Object)
*/
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.page.impl.FragmentPropertyList#set(int, java.lang.Object)
+ */
public synchronized Object set(int index, Object element)
{
// implement for modifiable AbstractList:
@@ -102,7 +116,7 @@ public class FragmentPropertyList extend
throw new IllegalArgumentException("Property name and value must be set.");
}
// find existing matching property
- FragmentPropertyImpl setMatch = getMatchingProperty(set);
+ FragmentProperty setMatch = getMatchingProperty(set);
if (setMatch != null)
{
// modify existing property
@@ -127,49 +141,43 @@ public class FragmentPropertyList extend
/* (non-Javadoc)
* @see java.util.List#size()
*/
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.page.impl.FragmentPropertyList#size()
+ */
public synchronized int size()
{
// implement for modifiable AbstractList
return properties.size();
}
- /**
- * Get fragment property list owner.
- *
- * @return fragment owner
- */
- public BaseFragmentElementImpl getFragmentImpl()
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.page.impl.FragmentPropertyList#getFragmentImpl()
+ */
+ public BaseFragmentElement getFragmentElement()
{
return fragment;
}
- /**
- * Get underlying fragment properties list.
- *
- * @return fragment property list
- */
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.page.impl.FragmentPropertyList#getProperties()
+ */
public List getProperties()
{
return properties;
}
- /**
- * Get underlying removed fragment properties list.
- *
- * @return removed fragment property list
- */
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.page.impl.FragmentPropertyList#getRemovedProperties()
+ */
public List getRemovedProperties()
{
return removedProperties;
}
- /**
- * Find matching property.
- *
- * @param match match property
- * @return matching property
- */
- public synchronized FragmentPropertyImpl getMatchingProperty(FragmentProperty match)
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.page.impl.FragmentPropertyList#getMatchingProperty(org.apache.jetspeed.om.page.FragmentProperty)
+ */
+ public synchronized FragmentProperty getMatchingProperty(FragmentProperty match)
{
Iterator matchIter = properties.iterator();
while (matchIter.hasNext())
@@ -183,9 +191,9 @@ public class FragmentPropertyList extend
return null;
}
- /**
- * Clear all transient properties.
- */
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.om.page.impl.FragmentPropertyList#clearProperties()
+ */
public synchronized void clearProperties()
{
properties.clear();
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/AbstractPageManager.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/AbstractPageManager.java?rev=989442&r1=989441&r2=989442&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/AbstractPageManager.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/AbstractPageManager.java Thu Aug 26 04:43:00 2010
@@ -1878,4 +1878,8 @@ public abstract class AbstractPageManage
PageManagerUtils.createUserHomePagesFromRoles(this, subject);
}
+ public FragmentPropertyManagement getFragmentPropertyManager()
+ {
+ return null;
+ }
}
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/impl/DatabasePageManager.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/impl/DatabasePageManager.java?rev=989442&r1=989441&r2=989442&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/impl/DatabasePageManager.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/impl/DatabasePageManager.java Thu Aug 26 04:43:00 2010
@@ -69,7 +69,7 @@ import org.apache.jetspeed.om.page.impl.
import org.apache.jetspeed.om.page.impl.FragmentImpl;
import org.apache.jetspeed.om.page.impl.FragmentPreferenceImpl;
import org.apache.jetspeed.om.page.impl.FragmentPropertyImpl;
-import org.apache.jetspeed.om.page.impl.FragmentPropertyList;
+import org.apache.jetspeed.om.page.impl.FragmentPropertyListImpl;
import org.apache.jetspeed.om.page.impl.FragmentReferenceImpl;
import org.apache.jetspeed.om.page.impl.FragmentSecurityConstraintImpl;
import org.apache.jetspeed.om.page.impl.LinkImpl;
@@ -91,6 +91,8 @@ import org.apache.jetspeed.om.preference
import org.apache.jetspeed.page.DelegatingPageManager;
import org.apache.jetspeed.page.FolderNotRemovedException;
import org.apache.jetspeed.page.FolderNotUpdatedException;
+import org.apache.jetspeed.page.FragmentPropertyList;
+import org.apache.jetspeed.page.FragmentPropertyManagement;
import org.apache.jetspeed.page.LinkNotRemovedException;
import org.apache.jetspeed.page.LinkNotUpdatedException;
import org.apache.jetspeed.page.PageManager;
@@ -117,7 +119,6 @@ import org.apache.ojb.broker.core.proxy.
import org.apache.ojb.broker.query.Criteria;
import org.apache.ojb.broker.query.QueryByCriteria;
import org.apache.ojb.broker.query.QueryFactory;
-
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -128,7 +129,7 @@ import org.slf4j.LoggerFactory;
* @author <a href="mailto:rwatler@apache.org">Randy Watler</a>
* @version $Id: $
*/
-public class DatabasePageManager extends InitablePersistenceBrokerDaoSupport implements PageManager
+public class DatabasePageManager extends InitablePersistenceBrokerDaoSupport implements PageManager, FragmentPropertyManagement
{
private static Logger log = LoggerFactory.getLogger(DatabasePageManager.class);
@@ -2784,7 +2785,7 @@ public class DatabasePageManager extends
// assemble fragment property list instance, (use transient
// list or create new fragment property list)
- list = new FragmentPropertyList(baseFragmentElementImpl);
+ list = new FragmentPropertyListImpl(baseFragmentElementImpl);
list.getProperties().addAll(globalFragmentPropertyList);
if (subject != null)
{
@@ -3240,4 +3241,31 @@ public class DatabasePageManager extends
{
// do not clear thread local cache: cache across transactions
}
+
+ public FragmentPropertyManagement getFragmentPropertyManager()
+ {
+ return this;
+ }
+
+ public FragmentPropertyList getFragmentPropertyList(
+ BaseFragmentElement baseFragmentElement,
+ FragmentPropertyList transientList)
+ {
+ return getFragmentPropertyList((BaseFragmentElementImpl)baseFragmentElement, transientList);
+ }
+
+ public void removeFragmentPropertyList(
+ BaseFragmentElement baseFragmentElement,
+ FragmentPropertyList transientList)
+ {
+ removeFragmentPropertyList((BaseFragmentElementImpl)baseFragmentElement, transientList);
+ }
+
+ public void updateFragmentPropertyList(
+ BaseFragmentElement baseFragmentElement, String scope,
+ FragmentPropertyList transientList)
+ {
+ updateFragmentPropertyList((BaseFragmentElementImpl)baseFragmentElement, scope, transientList);
+ }
+
}
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/impl/DatabasePageManagerCache.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/impl/DatabasePageManagerCache.java?rev=989442&r1=989441&r2=989442&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/impl/DatabasePageManagerCache.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/impl/DatabasePageManagerCache.java Thu Aug 26 04:43:00 2010
@@ -493,30 +493,27 @@ public class DatabasePageManagerCache im
*/
private static void clearPrincipalPropertiesCache(int fragmentId)
{
- synchronized (DatabasePageManagerCache.class)
+ // scan principal fragment property cache
+ List principalKeys = principalPropertiesCache.getKeys();
+ Iterator principalKeysIter = principalKeys.iterator();
+ while (principalKeysIter.hasNext())
{
- // scan principal fragment property cache
- List principalKeys = principalPropertiesCache.getKeys();
- Iterator principalKeysIter = principalKeys.iterator();
- while (principalKeysIter.hasNext())
- {
- String principalKey = (String)principalKeysIter.next();
- CacheElement propertiesElement = principalPropertiesCache.get(principalKey);
- if (propertiesElement != null)
+ String principalKey = (String)principalKeysIter.next();
+ CacheElement propertiesElement = principalPropertiesCache.get(principalKey);
+ if (propertiesElement != null)
+ {
+ // scan cached principal fragment property list
+ DatabasePageManagerCachedFragmentPropertyList cachedPrincipalFragmentPropertyList = (DatabasePageManagerCachedFragmentPropertyList)propertiesElement.getContent();
+ Iterator fragmentPropertyIter = cachedPrincipalFragmentPropertyList.iterator();
+ while (fragmentPropertyIter.hasNext())
{
- // scan cached principal fragment property list
- DatabasePageManagerCachedFragmentPropertyList cachedPrincipalFragmentPropertyList = (DatabasePageManagerCachedFragmentPropertyList)propertiesElement.getContent();
- Iterator fragmentPropertyIter = cachedPrincipalFragmentPropertyList.iterator();
- while (fragmentPropertyIter.hasNext())
+ FragmentPropertyImpl fragmentProperty = (FragmentPropertyImpl)fragmentPropertyIter.next();
+ if (((BaseFragmentElementImpl)fragmentProperty.getFragment()).getIdentity() == fragmentId)
{
- FragmentPropertyImpl fragmentProperty = (FragmentPropertyImpl)fragmentPropertyIter.next();
- if (((BaseFragmentElementImpl)fragmentProperty.getFragment()).getIdentity() == fragmentId)
- {
- // remove cached principal fragment property list
- DatabasePageManagerCache.principalPropertiesCache.removeQuiet(principalKey);
- DatabasePageManagerCache.principalPropertiesPathCache.removeQuiet(principalKey);
- break;
- }
+ // remove cached principal fragment property list
+ DatabasePageManagerCache.principalPropertiesCache.removeQuiet(principalKey);
+ DatabasePageManagerCache.principalPropertiesPathCache.removeQuiet(principalKey);
+ break;
}
}
}
Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/psml/CastorXmlPageManager.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/psml/CastorXmlPageManager.java?rev=989442&r1=989441&r2=989442&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/psml/CastorXmlPageManager.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/psml/CastorXmlPageManager.java Thu Aug 26 04:43:00 2010
@@ -38,9 +38,7 @@ import org.apache.jetspeed.om.folder.psm
import org.apache.jetspeed.om.folder.psml.MenuSeparatorDefinitionImpl;
import org.apache.jetspeed.om.page.BaseFragmentElement;
import org.apache.jetspeed.om.page.DynamicPage;
-import org.apache.jetspeed.om.page.Fragment;
import org.apache.jetspeed.om.page.FragmentDefinition;
-import org.apache.jetspeed.om.page.FragmentProperty;
import org.apache.jetspeed.om.page.Link;
import org.apache.jetspeed.om.page.Page;
import org.apache.jetspeed.om.page.PageSecurity;
@@ -64,6 +62,8 @@ import org.apache.jetspeed.om.page.psml.
import org.apache.jetspeed.om.page.psml.SecurityConstraintsImpl;
import org.apache.jetspeed.page.AbstractPageManager;
import org.apache.jetspeed.page.FolderNotUpdatedException;
+import org.apache.jetspeed.page.FragmentPropertyList;
+import org.apache.jetspeed.page.FragmentPropertyManagement;
import org.apache.jetspeed.page.PageManager;
import org.apache.jetspeed.page.PageManagerSecurityUtils;
import org.apache.jetspeed.page.PageNotFoundException;
@@ -79,7 +79,6 @@ import org.apache.jetspeed.page.document
import org.apache.jetspeed.page.document.NodeSet;
import org.apache.jetspeed.page.document.UnsupportedDocumentTypeException;
import org.apache.jetspeed.page.document.psml.NodeSetImpl;
-
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -91,7 +90,7 @@ import org.slf4j.LoggerFactory;
* @author <a href="mailto:weaver@apache.org">Scott T Weaver </a>
* @version $Id$
*/
-public class CastorXmlPageManager extends AbstractPageManager implements PageManager, FileCacheEventListener
+public class CastorXmlPageManager extends AbstractPageManager implements PageManager, FileCacheEventListener, FragmentPropertyManagement
{
private final static Logger log = LoggerFactory.getLogger(CastorXmlPageManager.class);
@@ -1280,11 +1279,48 @@ public class CastorXmlPageManager extend
// this page manager
}
+ public FragmentPropertyManagement getFragmentPropertyManager()
+ {
+ return this;
+ }
+
+ public FragmentPropertyList getFragmentPropertyList(
+ BaseFragmentElement baseFragmentElement,
+ FragmentPropertyList transientList)
+ {
+ return null;
+ }
+
+ public void removeFragmentPropertyList(
+ BaseFragmentElement baseFragmentElement,
+ FragmentPropertyList transientList)
+ {
+ }
+
+ public void updateFragmentPropertyList(
+ BaseFragmentElement baseFragmentElement, String scope,
+ FragmentPropertyList transientList)
+ {
+ }
+
public int addPages(Page[] pages)
throws NodeException
- {
- this.updatePage(pages[0]);
- this.updatePage(pages[1]);
- throw new NodeException("Its gonna blow captain!");
- }
+ {
+ if (pages.length > 0 && pages[0].getPath().equals("/tx__test1.psml"))
+ {
+ // for tx testing
+ log.debug("Adding first page");
+ this.updatePage(pages[0]);
+ log.debug("Adding second page");
+ this.updatePage(pages[1]);
+ log.debug("About to throw ex");
+ throw new NodeException("Its gonna blow captain!");
+ }
+ for (int ix = 0; ix < pages.length; ix++)
+ {
+ this.updatePage(pages[ix]);
+ }
+ return pages.length;
+ }
+
}
Added: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/page/FragmentPropertyList.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/page/FragmentPropertyList.java?rev=989442&view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/page/FragmentPropertyList.java (added)
+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/page/FragmentPropertyList.java Thu Aug 26 04:43:00 2010
@@ -0,0 +1,86 @@
+/*
+ * 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.page;
+
+import java.util.List;
+
+import org.apache.jetspeed.om.page.BaseFragmentElement;
+import org.apache.jetspeed.om.page.FragmentProperty;
+
+public interface FragmentPropertyList extends List
+{
+ /* (non-Javadoc)
+ * @see java.util.List#add(int,java.lang.Object)
+ */
+ public abstract void add(int index, Object element);
+
+ /* (non-Javadoc)
+ * @see java.util.List#get(int)
+ */
+ public abstract Object get(int index);
+
+ /* (non-Javadoc)
+ * @see java.util.List#remove(int)
+ */
+ public abstract Object remove(int index);
+
+ /* (non-Javadoc)
+ * @see java.util.List#set(int,java.lang.Object)
+ */
+ public abstract Object set(int index, Object element);
+
+ /* (non-Javadoc)
+ * @see java.util.List#size()
+ */
+ public abstract int size();
+
+ /**
+ * Get fragment property list owner.
+ *
+ * @return fragment owner
+ */
+ public abstract BaseFragmentElement getFragmentElement();
+
+ /**
+ * Get underlying fragment properties list.
+ *
+ * @return fragment property list
+ */
+ public abstract List getProperties();
+
+ /**
+ * Get underlying removed fragment properties list.
+ *
+ * @return removed fragment property list
+ */
+ public abstract List getRemovedProperties();
+
+ /**
+ * Find matching property.
+ *
+ * @param match match property
+ * @return matching property
+ */
+ public abstract FragmentProperty getMatchingProperty(
+ FragmentProperty match);
+
+ /**
+ * Clear all transient properties.
+ */
+ public abstract void clearProperties();
+
+}
\ No newline at end of file
Propchange: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/page/FragmentPropertyList.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/page/FragmentPropertyList.java
------------------------------------------------------------------------------
svn:keywords = Id
Added: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/page/FragmentPropertyManagement.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/page/FragmentPropertyManagement.java?rev=989442&view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/page/FragmentPropertyManagement.java (added)
+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/page/FragmentPropertyManagement.java Thu Aug 26 04:43:00 2010
@@ -0,0 +1,16 @@
+package org.apache.jetspeed.page;
+
+import org.apache.jetspeed.om.page.BaseFragmentElement;
+
+/**
+ * Supplemental and optional service supported by Page Managers. Fragment Property lists can be manipulated with this interface
+ *
+ * @author dtaylor
+ *
+ */
+public interface FragmentPropertyManagement
+{
+ void updateFragmentPropertyList(BaseFragmentElement baseFragmentElement, String scope, FragmentPropertyList transientList);
+ void removeFragmentPropertyList(BaseFragmentElement baseFragmentElement, FragmentPropertyList transientList);
+ FragmentPropertyList getFragmentPropertyList(BaseFragmentElement baseFragmentElement, FragmentPropertyList transientList);
+}
Propchange: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/page/FragmentPropertyManagement.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/page/FragmentPropertyManagement.java
------------------------------------------------------------------------------
svn:keywords = Id
Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/page/PageManager.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/page/PageManager.java?rev=989442&r1=989441&r2=989442&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/page/PageManager.java (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/page/PageManager.java Thu Aug 26 04:43:00 2010
@@ -1165,4 +1165,11 @@ public interface PageManager
* Cleanup request level cache for current thread.
*/
public void cleanupRequestCache();
+
+ /**
+ * Supplemental and optional service supported by Page Managers.
+ * Fragment Property lists can be manipulated with this interface
+ */
+ public FragmentPropertyManagement getFragmentPropertyManager();
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org