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/01/05 07:04:18 UTC

svn commit: r731466 [1/12] - in /portals/jetspeed-2/portal/branches/JPA_BRANCH: ./ components/jetspeed-cm/src/main/java/org/apache/jetspeed/components/ components/jetspeed-cm/src/main/java/org/apache/jetspeed/test/ components/jetspeed-page-manager/ com...

Author: rwatler
Date: Sun Jan  4 22:04:13 2009
New Revision: 731466

URL: http://svn.apache.org/viewvc?rev=731466&view=rev
Log:
JPA Persistence Implementation
------------------------------

- Initial JPA DBPM implementation.
- PM OM API change: renamed SecurityConstaints to SecurityConstraintsContext to avoid method name conflicts.
- Requires schema upgrade to add JPA sequence support and JPA_VERSION column to entity tables.
- Note: not yet integrated with portal spring configuration; JPA is active only during PM tests.


Added:
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderSecurityConstraintsContextImpl.java
      - copied, changed from r728362, portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderSecurityConstraintsImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/jpa/
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/jpa/FolderBaseMenuDefinitionElement.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/jpa/FolderBaseMenuDefinitionMetadata.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/jpa/FolderImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/jpa/FolderMenuDefinitionElementList.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/jpa/FolderMenuDefinitionImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/jpa/FolderMenuDefinitionList.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/jpa/FolderMenuExcludeDefinitionImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/jpa/FolderMenuIncludeDefinitionImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/jpa/FolderMenuMetadataLocalizedFieldImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/jpa/FolderMenuOptionsDefinitionImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/jpa/FolderMenuSeparatorDefinitionImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/jpa/FolderMetadataLocalizedFieldImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/jpa/FolderOrder.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/jpa/FolderOrderList.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/jpa/FolderSecurityConstraintImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/jpa/FolderSecurityConstraintsRef.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/AbstractSecurityConstraintImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/FragmentSecurityConstraintsContextImpl.java
      - copied, changed from r728362, portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/FragmentSecurityConstraintsImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/LinkSecurityConstraintsContextImpl.java
      - copied, changed from r728362, portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/LinkSecurityConstraintsImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/PageSecurityConstraintsContextImpl.java
      - copied, changed from r728362, portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/PageSecurityConstraintsImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/SecurityConstraintsContextImpl.java
      - copied, changed from r728362, portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/SecurityConstraintsImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/BaseElementImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/BaseMetadataLocalizedFieldImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/BaseSecurityConstraintImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/BaseSecurityConstraintsRef.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/FilteredFragmentList.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/FragmentImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/FragmentList.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/FragmentPreferenceImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/FragmentPreferenceList.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/FragmentPreferenceValue.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/FragmentPreferenceValueList.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/FragmentPropertyMap.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/FragmentSecurityConstraintImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/FragmentSecurityConstraintsRef.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/GenericSecurityConstraintsContextImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/LinkImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/LinkMetadataLocalizedFieldImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/LinkSecurityConstraintImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/LinkSecurityConstraintsRef.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/MetadataLocalizedFieldCollection.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/PageBaseMenuDefinitionElement.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/PageBaseMenuDefinitionMetadata.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/PageImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/PageMenuDefinitionElementList.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/PageMenuDefinitionImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/PageMenuDefinitionList.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/PageMenuExcludeDefinitionImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/PageMenuIncludeDefinitionImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/PageMenuMetadataLocalizedFieldImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/PageMenuOptionsDefinitionImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/PageMenuSeparatorDefinitionImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/PageMetadataLocalizedFieldImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/PageSecurityConstraintImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/PageSecurityConstraintsDefList.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/PageSecurityConstraintsRef.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/PageSecurityConstraintsRefList.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/PageSecurityGlobalSecurityConstraintsRef.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/PageSecurityImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/PageSecuritySecurityConstraintImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/SecurityConstraintDefList.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/SecurityConstraintList.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/SecurityConstraintsContextImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/SecurityConstraintsDefImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/SecurityConstraintsRefList.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/psml/SecurityConstraintsContextImpl.java
      - copied, changed from r728362, portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/psml/SecurityConstraintsImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/document/jpa/
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/document/jpa/DocumentImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/document/jpa/NodeImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/document/jpa/NodeSetImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/jpa/
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/jpa/DatabasePageManager.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/jpa/DatabasePageManagerContext.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/jpa/DatabasePageManagerImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/jpa/DatabasePageManagerUtils.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/jpa/OpenJPADatabasePageManagerImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/jpa/OpenJPADatabasePageManagerProperties.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/resources/META-INF/
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/resources/META-INF/persistence.xml
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestOpenJPADatabasePageManager.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestOpenJPATransactions.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestSecureOpenJPADatabasePageManager.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestSecurePermissionsOpenJPADatabasePageManager.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/cache/OpenJPADatabasePageManagerServer.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/cache/TestOpenJPADatabasePageManagerCache.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/resources/jpa-database-page-manager.xml
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/resources/openjpa-database-page-manager-base.xml
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/resources/openjpa-database-page-manager.xml
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/resources/secure-openjpa-database-page-manager.xml
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/resources/secure-permissions-openjpa-database-page-manager.xml
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-rdbms/src/main/java/org/apache/jetspeed/components/rdbms/jpa/
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-rdbms/src/main/java/org/apache/jetspeed/components/rdbms/jpa/OpenJPAConfigurationProperties.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/jetspeed-api/src/main/java/org/apache/jetspeed/om/common/SecurityConstraintsContext.java
      - copied, changed from r728362, portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/common/SecurityConstraints.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/jetspeed-portal-resources/src/main/ddl-schema/jpa-schema.xml
Removed:
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderSecurityConstraintsImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/FragmentSecurityConstraintsImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/LinkSecurityConstraintsImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/PageSecurityConstraintsImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/SecurityConstraintsImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/psml/SecurityConstraintsImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/jetspeed-api/src/main/java/org/apache/jetspeed/om/common/SecurityConstraints.java
Modified:
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-cm/src/main/java/org/apache/jetspeed/components/SpringComponentManager.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-cm/src/main/java/org/apache/jetspeed/test/JetspeedTestCase.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/pom.xml
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderMenuDefinitionElementList.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderMenuDefinitionList.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderOrderList.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/psml/FolderImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/psml/MenuMetadataImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/ContentFragmentImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/ContentPageImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/PageMetadataImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/SecurityConstraintImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/BaseElementImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/FilteredFragmentList.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/FragmentImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/FragmentList.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/FragmentPreferenceList.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/FragmentPreferenceValueList.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/FragmentPropertyMap.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/LinkImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/PageImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/PageMenuDefinitionElementList.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/PageMenuDefinitionList.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/PageSecurityConstraintsDefList.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/PageSecurityConstraintsRefList.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/SecurityConstraintDefList.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/SecurityConstraintList.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/SecurityConstraintsDefImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/impl/SecurityConstraintsRefList.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/psml/AbstractBaseElement.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/psml/PageImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/psml/SecurityConstraintsDefImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/AbstractPageManager.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/PageManagerSecurityUtils.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/PageManagerUtils.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/document/impl/DocumentImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/document/impl/NodeImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/document/impl/NodeSetImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/document/psml/AbstractNode.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/impl/DatabasePageManager.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/impl/DatabasePageManagerCache.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/psml/CastorXmlPageManager.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/resources/JETSPEED-INF/castor/page-mapping.xml
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/resources/JETSPEED-INF/ojb/page-manager-repository.xml
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/PageManagerTestShared.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestCastorXmlPageManager.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestDatabasePageManager.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestSecureDatabasePageManager.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestSecurePermissionsDatabasePageManager.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestTransactions.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/cache/DatabasePageManagerServer.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/cache/TestDatabasePageManagerCache.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/resources/log4j.properties
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletAggregatorFragmentImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/BaseGetResourceAction.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/BaseSiteUpdateAction.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/test/java/org/apache/jetspeed/components/portletentity/ContentFragmentTestImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/jetspeed-api/src/main/java/org/apache/jetspeed/components/ComponentManagement.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/jetspeed-api/src/main/java/org/apache/jetspeed/om/common/SecuredResource.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/jetspeed-api/src/main/java/org/apache/jetspeed/page/PageManager.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/jetspeed-portal-resources/src/main/ddl-schema/phase2-schema.xml
    portals/jetspeed-2/portal/branches/JPA_BRANCH/jetspeed-portal-resources/src/main/resources/ddl/mssql/create-schema.sql
    portals/jetspeed-2/portal/branches/JPA_BRANCH/pom.xml

Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-cm/src/main/java/org/apache/jetspeed/components/SpringComponentManager.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-cm/src/main/java/org/apache/jetspeed/components/SpringComponentManager.java?rev=731466&r1=731465&r2=731466&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-cm/src/main/java/org/apache/jetspeed/components/SpringComponentManager.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-cm/src/main/java/org/apache/jetspeed/components/SpringComponentManager.java Sun Jan  4 22:04:13 2009
@@ -271,4 +271,22 @@
         appContext.refresh();
         started = true;
     }
+
+    /* (non-Javadoc)
+     * @see org.apache.jetspeed.components.ComponentManagement#createPrototypeComponent(java.lang.Object)
+     */
+    public Object createPrototypeComponent(Object componentName)
+    {
+        String name = ((componentName instanceof Class) ? ((Class) componentName).getName() : componentName.toString());
+        return appContext.getBeanFactory().getBean(name);
+    }
+
+    /* (non-Javadoc)
+     * @see org.apache.jetspeed.components.ComponentManagement#destroyPrototypeComponent(java.lang.Object, java.lang.Object)
+     */
+    public void destroyPrototypeComponent(Object componentName, Object component)
+    {
+        String name = ((componentName instanceof Class) ? ((Class) componentName).getName() : componentName.toString());
+        appContext.getBeanFactory().destroyBean(name, component);
+    }
 }

Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-cm/src/main/java/org/apache/jetspeed/test/JetspeedTestCase.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-cm/src/main/java/org/apache/jetspeed/test/JetspeedTestCase.java?rev=731466&r1=731465&r2=731466&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-cm/src/main/java/org/apache/jetspeed/test/JetspeedTestCase.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-cm/src/main/java/org/apache/jetspeed/test/JetspeedTestCase.java Sun Jan  4 22:04:13 2009
@@ -28,6 +28,32 @@
  */
 public class JetspeedTestCase extends TestCase
 {
+    /**
+     * Generate test suit for class with specified tests in order.
+     * 
+     * @param testClass test suit class
+     * @param tests test suit test method names
+     * @return generated test suit
+     */
+    public static TestSuite createFixturedTestSuite(Class testClass, String [] tests)
+    {
+        // create test with specific tests run in order
+        TestSuite ts = new TestSuite();
+        for (int i = 0; (i < tests.length); i++)
+        {
+            ts.addTest(ts.createTest(testClass, tests[i]));
+        }
+        return ts;
+    }
+
+    /**
+     * Generate test suit for class with specified first and last tests.
+     * 
+     * @param testClass test suit class
+     * @param firstTest first test suit test method name or null
+     * @param lastTest last test suit test method name or null
+     * @return generated test suit
+     */
     public static TestSuite createFixturedTestSuite(Class testClass, String firstTest, String lastTest)
     {
         // All methods starting with "test" will automatically be executed in the test suite.

Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/pom.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/pom.xml?rev=731466&r1=731465&r2=731466&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/pom.xml (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/pom.xml Sun Jan  4 22:04:13 2009
@@ -84,6 +84,14 @@
             <groupId>commons-logging</groupId>
             <artifactId>commons-logging</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.openjpa</groupId>
+            <artifactId>openjpa-persistence-jdbc</artifactId>
+        </dependency>        
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring</artifactId>
+        </dependency>    
         
         <!-- Test Dependencies -->
         <dependency>
@@ -176,6 +184,108 @@
                     </execution>
                 </executions>
             </plugin>
+ 	        <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>openjpa-maven-plugin</artifactId>
+                <version>1.0-alpha</version>
+                <executions>
+                    <execution>
+                        <id>org.apache.jetspeed.om.folder.jpa</id>
+                        <phase>process-classes</phase>
+                        <goals>
+                            <goal>enhance</goal>
+                        </goals>
+                        <configuration>
+                            <classes>${project.build.directory}/classes/org/apache/jetspeed/om/folder/jpa</classes>                   	  
+                            <toolProperties>                      	 
+                                <property>
+                                    <name>addDefaultConstructor</name>
+                                    <value>true</value>
+                                </property>
+                                <property>
+                                    <name>enforcePropertyRestrictions</name>
+                                    <value>true</value>
+                                </property>
+                            </toolProperties>
+                        </configuration>                  
+                    </execution>
+                    <execution>
+                        <id>org.apache.jetspeed.om.page.jpa</id>
+                        <phase>process-classes</phase>
+                        <goals>
+                            <goal>enhance</goal>
+                        </goals>
+                        <configuration>
+                            <classes>${project.build.directory}/classes/org/apache/jetspeed/om/page/jpa</classes>                   	  
+                            <toolProperties>                      	 
+                                <property>
+                                    <name>addDefaultConstructor</name>
+                                    <value>true</value>
+                                </property>
+                                <property>
+                                    <name>enforcePropertyRestrictions</name>
+                                    <value>true</value>
+                                </property>
+                            </toolProperties>
+                        </configuration>                  
+                    </execution>
+                    <execution>
+                        <id>org.apache.jetspeed.page.document.jpa</id>
+                        <phase>process-classes</phase>
+                        <goals>
+                            <goal>enhance</goal>
+                        </goals>
+                        <configuration>
+                            <classes>${project.build.directory}/classes/org/apache/jetspeed/page/document/jpa</classes>                   	  
+                            <toolProperties>                      	 
+                                <property>
+                                    <name>addDefaultConstructor</name>
+                                    <value>true</value>
+                                </property>
+                                <property>
+                                    <name>enforcePropertyRestrictions</name>
+                                    <value>true</value>
+                                </property>
+                            </toolProperties>
+                        </configuration>                  
+                    </execution>
+                    <execution>
+                        <id>org.apache.jetspeed.page.jpa</id>
+                        <phase>process-classes</phase>
+                        <goals>
+                            <goal>enhance</goal>
+                        </goals>
+                        <configuration>
+                            <classes>${project.build.directory}/classes/org/apache/jetspeed/page/jpa</classes>                   	  
+                            <toolProperties>                      	 
+                                <property>
+                                    <name>addDefaultConstructor</name>
+                                    <value>true</value>
+                                </property>
+                                <property>
+                                    <name>enforcePropertyRestrictions</name>
+                                    <value>true</value>
+                                </property>
+                            </toolProperties>
+                        </configuration>                  
+                    </execution>
+                </executions>
+                <dependencies>
+                    <!-- om objects implement jetspeed APIs -->
+                    <dependency>
+                        <groupId>${pom.groupId}</groupId>
+                        <artifactId>jetspeed-api</artifactId>
+                        <version>${pom.version}</version>
+                    </dependency>
+                    <!-- force upgrade of JPA for plugin -->
+                    <dependency>
+                        <groupId>org.apache.openjpa</groupId>
+                        <artifactId>openjpa-persistence-jdbc</artifactId>
+                        <version>${openjpa.version}</version>
+                        <scope>runtime</scope>
+                    </dependency>
+                </dependencies>
+            </plugin>
         </plugins>
     </build>
 </project>

Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderImpl.java?rev=731466&r1=731465&r2=731466&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderImpl.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderImpl.java Sun Jan  4 22:04:13 2009
@@ -18,12 +18,14 @@
 
 import java.security.AccessController;
 import java.security.Permission;
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Comparator;
 import java.util.Iterator;
 import java.util.List;
 
-import org.apache.jetspeed.Jetspeed;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.jetspeed.JetspeedActions;
 import org.apache.jetspeed.om.folder.Folder;
 import org.apache.jetspeed.om.folder.FolderNotFoundException;
@@ -51,6 +53,7 @@
 import org.apache.jetspeed.page.document.impl.NodeImpl;
 import org.apache.jetspeed.page.document.impl.NodeSetImpl;
 import org.apache.jetspeed.page.impl.DatabasePageManagerUtils;
+import org.apache.jetspeed.page.impl.DatabasePageManagerCache;
 import org.apache.jetspeed.security.PermissionFactory;
 import org.apache.ojb.broker.core.proxy.ProxyHelper;
 
@@ -62,6 +65,8 @@
  */
 public class FolderImpl extends NodeImpl implements Folder
 {
+    private static final Log log = LogFactory.getLog(FolderImpl.class);
+
     private String defaultPage;
     private String skin;
     private String defaultLayoutDecorator;
@@ -70,6 +75,7 @@
     private List menus;
 
     private PageManager pageManager;
+    private Object cacheLock;
     private List folders;
     private boolean foldersCached;
     private List pages;
@@ -98,7 +104,8 @@
     
     public FolderImpl()
     {
-        super(new FolderSecurityConstraintsImpl());
+        super(new FolderSecurityConstraintsContextImpl());
+        cacheLock = new Object();
     }
 
     /**
@@ -148,6 +155,16 @@
     }
 
     /**
+     * Access cache lock for used by PageManager to synchronize cached state.
+     *
+     * @return access cache lock
+     */
+    public Object accessCacheLock()
+    {
+        return cacheLock;
+    }
+
+    /**
      * accessFolders
      *
      * Access folders transient cache collection for use by PageManager.
@@ -156,12 +173,15 @@
      */
     public List accessFolders()
     {
-        // create initial collection if necessary
-        if (folders == null)
+        synchronized (cacheLock)
         {
-            folders = DatabasePageManagerUtils.createList();
+            // create initial collection if necessary
+            if (folders == null)
+            {
+                folders = new ArrayList();
+            }
+            return folders;
         }
-        return folders;
     }
 
     /**
@@ -173,20 +193,23 @@
      */
     public void resetFolders(boolean cached)
     {
-        // save cached state
-        foldersCached = cached;
-        allCached = false;
-
-        // update node caches
-        if (!cached)
+        synchronized (cacheLock)
         {
-            accessFolders().clear();
-        }
-        accessAll().clear();
+            // save cached state
+            foldersCached = cached;
+            allCached = false;
+
+            // update node caches
+            if (!cached)
+            {
+                accessFolders().clear();
+            }
+            accessAll().clear();
 
-        // reset cached node sets
-        foldersNodeSet = null;
-        allNodeSet = null;
+            // reset cached node sets
+            foldersNodeSet = null;
+            allNodeSet = null;
+        }
     }
 
     /**
@@ -198,12 +221,15 @@
      */
     public List accessPages()
     {
-        // create initial collection if necessary
-        if (pages == null)
+        synchronized (cacheLock)
         {
-            pages = DatabasePageManagerUtils.createList();
+            // create initial collection if necessary
+            if (pages == null)
+            {
+                pages = new ArrayList();
+            }
+            return pages;
         }
-        return pages;
     }
 
     /**
@@ -215,20 +241,23 @@
      */
     public void resetPages(boolean cached)
     {
-        // save cached state
-        pagesCached = cached;
-        allCached = false;
-
-        // update node caches
-        if (!cached)
+        synchronized (cacheLock)
         {
-            accessPages().clear();
-        }
-        accessAll().clear();
+            // save cached state
+            pagesCached = cached;
+            allCached = false;
 
-        // reset cached node sets
-        pagesNodeSet = null;
-        allNodeSet = null;
+            // update node caches
+            if (!cached)
+            {
+                accessPages().clear();
+            }
+            accessAll().clear();
+
+            // reset cached node sets
+            pagesNodeSet = null;
+            allNodeSet = null;
+        }
     }
 
     /**
@@ -240,12 +269,15 @@
      */
     public List accessLinks()
     {
-        // create initial collection if necessary
-        if (links == null)
+        synchronized (cacheLock)
         {
-            links = DatabasePageManagerUtils.createList();
+            // create initial collection if necessary
+            if (links == null)
+            {
+                links = new ArrayList();
+            }
+            return links;
         }
-        return links;
     }
 
     /**
@@ -257,20 +289,23 @@
      */
     public void resetLinks(boolean cached)
     {
-        // save cached state
-        linksCached = cached;
-        allCached = false;
-
-        // update node caches
-        if (!cached)
+        synchronized (cacheLock)
         {
-            accessLinks().clear();
-        }
-        accessAll().clear();
+            // save cached state
+            linksCached = cached;
+            allCached = false;
 
-        // reset cached node sets
-        linksNodeSet = null;
-        allNodeSet = null;
+            // update node caches
+            if (!cached)
+            {
+                accessLinks().clear();
+            }
+            accessAll().clear();
+
+            // reset cached node sets
+            linksNodeSet = null;
+            allNodeSet = null;
+        }
     }
 
     /**
@@ -282,7 +317,10 @@
      */
     public PageSecurityImpl accessPageSecurity()
     {
-        return pageSecurity;
+        synchronized (cacheLock)
+        {
+            return pageSecurity;
+        }
     }
 
     /**
@@ -295,16 +333,19 @@
      */
     public void resetPageSecurity(PageSecurityImpl newPageSecurity, boolean cached)
     {
-        // save cached state
-        pageSecurity = newPageSecurity;
-        pageSecurityCached = cached;
-        allCached = false;
+        synchronized (cacheLock)
+        {
+            // save cached state
+            pageSecurity = newPageSecurity;
+            pageSecurityCached = cached;
+            allCached = false;
 
-        // update node caches
-        accessAll().clear();
+            // update node caches
+            accessAll().clear();
 
-        // reset cached node sets
-        allNodeSet = null;
+            // reset cached node sets
+            allNodeSet = null;
+        }
     }
 
     /**
@@ -316,12 +357,15 @@
      */
     public List accessAll()
     {
-        // create initial collection if necessary
-        if (all == null)
+        synchronized (cacheLock)
         {
-            all = DatabasePageManagerUtils.createList();
+            // create initial collection if necessary
+            if (all == null)
+            {
+                all = new ArrayList();
+            }
+            return all;
         }
-        return all;
     }
 
     /**
@@ -333,23 +377,23 @@
      */
     public void resetAll(boolean cached)
     {
-        // save cached state
-        allCached = cached;
-        foldersCached = cached;
-        pagesCached = cached;
-        linksCached = cached;
-        pageSecurityCached = cached;
-
-        // update node caches
-        accessFolders().clear();
-        accessPages().clear();
-        accessLinks().clear();
-        pageSecurity = null;
-        if (cached)
+        synchronized (cacheLock)
         {
-            // populate node caches
-            synchronized(all)
+            // save cached state
+            allCached = cached;
+            foldersCached = cached;
+            pagesCached = cached;
+            linksCached = cached;
+            pageSecurityCached = cached;
+
+            // update node caches
+            accessFolders().clear();
+            accessPages().clear();
+            accessLinks().clear();
+            pageSecurity = null;
+            if (cached)
             {
+                // populate node caches
                 Iterator nodeIter = accessAll().iterator();
                 while (nodeIter.hasNext())
                 {
@@ -372,21 +416,22 @@
                     }
                 }
             }
-        }
-        else
-        {
-            accessAll().clear();
-        }
+            else
+            {
+                accessAll().clear();
+            }
 
-        // reset cached node sets
-        allNodeSet = null;
-        foldersNodeSet = null;
-        pagesNodeSet = null;
-        linksNodeSet = null;
+            // reset cached node sets
+            allNodeSet = null;
+            foldersNodeSet = null;
+            pagesNodeSet = null;
+            linksNodeSet = null;
+        }
     }
 
     /**
-     * createDocumentOrderComparator
+     * Create document order comparator,
+     * (assume cacheLock synchronized by caller).
      *
      * @return document order comparator
      */
@@ -404,65 +449,68 @@
             }
             // create new document order comparator
             documentOrderComparator = new Comparator()
+            {
+                /* (non-Javadoc)
+                 * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
+                 */
+                public int compare(Object o1, Object o2)
                 {
-                    /* (non-Javadoc)
-                     * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
-                     */
-                    public int compare(Object o1, Object o2)
+                    // Compare node names using document order;
+                    // use indices as names if found in document
+                    // order to force explicitly ordered items
+                    // ahead of unordered items
+                    String name1 = (String)o1;
+                    int index1 = documentOrder.indexOf(name1);
+                    if (index1 >= 0)
+                    {
+                        // use order index as name1
+                        name1 = String.valueOf(index1);
+                    }
+                    String name2 = (String)o2;
+                    int index2 = documentOrder.indexOf(name2);
+                    if (index2 >= 0)
                     {
-                        // Compare node names using document order;
-                        // use indicies as names if found in document
-                        // order to force explicitly ordered items
-                        // ahead of unordered items
-                        String name1 = (String)o1;
-                        int index1 = documentOrder.indexOf(name1);
+                        // use order index as name2
+                        name2 = String.valueOf(index2);
                         if (index1 >= 0)
                         {
-                            // use order index as name1
-                            name1 = String.valueOf(index1);
-                        }
-                        String name2 = (String)o2;
-                        int index2 = documentOrder.indexOf(name2);
-                        if (index2 >= 0)
-                        {
-                            // use order index as name2
-                            name2 = String.valueOf(index2);
-                            if (index1 >= 0)
+                            // pad order indices for numeric string compare
+                            while (name1.length() != name2.length())
                             {
-                                // pad order indicies for numeric string compare
-                                while (name1.length() != name2.length())
+                                if (name1.length() < name2.length())
                                 {
-                                    if (name1.length() < name2.length())
-                                    {
-                                        name1 = "0" + name1;
-                                    }
-                                    else
-                                    {
-                                        name2 = "0" + name2;
-                                    }
+                                    name1 = "0" + name1;
+                                }
+                                else
+                                {
+                                    name2 = "0" + name2;
                                 }
                             }
                         }
-                        // compare names and/or indicies
-                        return name1.compareTo(name2);                        
                     }
-                };
+                    // compare names and/or indices
+                    return name1.compareTo(name2);                        
+                }
+            };
         }
         return documentOrderComparator;
     }
 
     /**
-     * clearDocumentOrderComparator
+     * Clear cached document order comparator and related cached data.
      */
     void clearDocumentOrderComparator()
     {
-        // clear node set ordering
-        documentOrderComparatorValid = false;
-        documentOrderComparator = null;
-        // clear previously cached node sets
-        allNodeSet = null;
-        foldersNodeSet = null;
-        pagesNodeSet = null;
+        synchronized (cacheLock)
+        {
+            // clear node set ordering
+            documentOrderComparatorValid = false;
+            documentOrderComparator = null;
+            // clear previously cached node sets
+            allNodeSet = null;
+            foldersNodeSet = null;
+            pagesNodeSet = null;
+        }
     }
 
     /* (non-Javadoc)
@@ -481,25 +529,28 @@
     public PageSecurity getEffectivePageSecurity()
     {
         // return page security instance if available
-        if (!pageSecurityCached)
+        synchronized (cacheLock)
         {
-            // use PageManager to get and cache page security
-            // instance for this folder
-            try
-            {
-                return getPageManager().getPageSecurity(this);
-            }
-            catch (NodeException ne)
+            if (!pageSecurityCached)
             {
+                // use PageManager to get and cache page security
+                // instance for this folder
+                try
+                {
+                    return getPageManager().getPageSecurity(this);
+                }
+                catch (NodeException ne)
+                {
+                }
+                catch (NodeNotFoundException nnfe)
+                {
+                }
             }
-            catch (NodeNotFoundException nnfe)
+            else if (pageSecurity != null)
             {
+                return pageSecurity;
             }
         }
-        else if (pageSecurity != null)
-        {
-            return pageSecurity;
-        }
 
         // delegate to real parent folder implementation
         FolderImpl parentFolderImpl = (FolderImpl)ProxyHelper.getRealObject(getParent());
@@ -516,7 +567,7 @@
     public void checkPermissions(String path, int mask, boolean checkNodeOnly, boolean checkParentsOnly) throws SecurityException
     {
         // check granted folder permissions unless the check is
-        // to be skipped due to explicity granted access
+        // to be skipped due to explicitly granted access
         if (!checkParentsOnly)
         {
             AccessController.checkPermission((Permission)pf.newPermission(pf.FOLDER_PERMISSION, path, mask));
@@ -679,16 +730,23 @@
      */
     public NodeSet getFolders() throws DocumentException
     {
-        // get folders collection
-        if (!foldersCached)
+        NodeSet nodes = null;
+        synchronized (cacheLock)
         {
-            // use PageManager to get and cache folders
-            // collection for this folder
-            return getPageManager().getFolders(this);
-        }
+            // get folders collection
+            if (!foldersCached)
+            {
+                // use PageManager to get and cache folders
+                // collection for this folder
+                return getPageManager().getFolders(this);
+            }
 
+            // return cached nodes
+            nodes = getFoldersNodeSet();
+        }
+        
         // return nodes with view access
-        return filterNodeSetByAccess(getFoldersNodeSet());
+        return filterNodeSetByAccess(nodes);
     }
     
     /* (non-Javadoc)
@@ -696,16 +754,20 @@
      */
     public Folder getFolder(String name) throws FolderNotFoundException, DocumentException
     {
-        // get folder instance if folders collection not available
-        if (!foldersCached)
+        Folder folder = null;
+        synchronized (cacheLock)
         {
-            // use PageManager to get folder instance without
-            // caching the folders collection for this folder
-            return getPageManager().getFolder(this, name);
-        }
+            // get folder instance if folders collection not available
+            if (!foldersCached)
+            {
+                // use PageManager to get folder instance without
+                // caching the folders collection for this folder
+                return getPageManager().getFolder(this, name);
+            }
 
-        // select folder by name from cached folders collection
-        Folder folder = (Folder)getFoldersNodeSet().get(name);
+            // select folder by name from cached folders collection
+            folder = (Folder)getFoldersNodeSet().get(name);
+        }
         if (folder == null)
         {
             throw new FolderNotFoundException("Folder not found: " + name);
@@ -722,16 +784,23 @@
      */
     public NodeSet getPages() throws NodeException
     {
-        // get pages collection
-        if (!pagesCached)
+        NodeSet nodes = null;
+        synchronized (cacheLock)
         {
-            // use PageManager to get and cache pages
-            // collection for this folder
-            return getPageManager().getPages(this);
+            // get pages collection
+            if (!pagesCached)
+            {
+                // use PageManager to get and cache pages
+                // collection for this folder
+                return getPageManager().getPages(this);
+            }
+
+            // return cached nodes
+            nodes = getPagesNodeSet();
         }
 
         // return nodes with view access
-        return filterNodeSetByAccess(getPagesNodeSet());
+        return filterNodeSetByAccess(nodes);
     }
     
     /* (non-Javadoc)
@@ -739,16 +808,20 @@
      */
     public Page getPage(String name) throws PageNotFoundException, NodeException
     {
-        // get page instance if pages collection not available
-        if (!pagesCached)
+        Page page = null;
+        synchronized (cacheLock)
         {
-            // use PageManager to get page instance without
-            // caching the pages collection for this folder
-            return getPageManager().getPage(this, name);
-        }
+            // get page instance if pages collection not available
+            if (!pagesCached)
+            {
+                // use PageManager to get page instance without
+                // caching the pages collection for this folder
+                return getPageManager().getPage(this, name);
+            }
 
-        // select page by name from cached pages collection
-        Page page = (Page)getPagesNodeSet().get(name);
+            // select page by name from cached pages collection
+            page = (Page)getPagesNodeSet().get(name);
+        }
         if (page == null)
         {
             throw new PageNotFoundException("Page not found: " + name);
@@ -765,16 +838,23 @@
      */
     public NodeSet getLinks() throws NodeException
     {
-        // get links collection
-        if (!linksCached)
+        NodeSet nodes = null;
+        synchronized (cacheLock)
         {
-            // use PageManager to get and cache links
-            // collection for this folder
-            return getPageManager().getLinks(this);
+            // get links collection
+            if (!linksCached)
+            {
+                // use PageManager to get and cache links
+                // collection for this folder
+                return getPageManager().getLinks(this);
+            }
+
+            // return cached nodes
+            nodes = getLinksNodeSet();
         }
 
         // return nodes with view access
-        return filterNodeSetByAccess(getLinksNodeSet());
+        return filterNodeSetByAccess(nodes);
     }
     
     /* (non-Javadoc)
@@ -782,16 +862,20 @@
      */
     public Link getLink(String name) throws DocumentNotFoundException, NodeException
     {
-        // get link instance if links collection not available
-        if (!linksCached)
+        Link link = null;
+        synchronized (cacheLock)
         {
-            // use PageManager to get link instance without
-            // caching the links collection for this folder
-            return getPageManager().getLink(this, name);
-        }
+            // get link instance if links collection not available
+            if (!linksCached)
+            {
+                // use PageManager to get link instance without
+                // caching the links collection for this folder
+                return getPageManager().getLink(this, name);
+            }
 
-        // select link by name from cached links collection
-        Link link = (Link)getLinksNodeSet().get(name);
+            // select link by name from cached links collection
+            link = (Link)getLinksNodeSet().get(name);
+        }
         if (link == null)
         {
             throw new DocumentNotFoundException("Link not found: " + name);
@@ -808,12 +892,17 @@
      */
     public PageSecurity getPageSecurity() throws DocumentNotFoundException, NodeException
     {
-        // get page security instance
-        if (!pageSecurityCached)
+        PageSecurity pageSecurity = null;
+        synchronized (cacheLock)
         {
-            // use PageManager to get and cache page security
-            // instance for this folder
-            return getPageManager().getPageSecurity(this);
+            // get page security instance
+            if (!pageSecurityCached)
+            {
+                // use PageManager to get and cache page security
+                // instance for this folder
+                return getPageManager().getPageSecurity(this);
+            }
+            pageSecurity = this.pageSecurity;
         }
         if (pageSecurity == null)
         {
@@ -831,16 +920,23 @@
      */
     public NodeSet getAll() throws DocumentException
     {
-        // get all nodes collection
-        if (!allCached)
+        NodeSet nodes = null;
+        synchronized (cacheLock)
         {
-            // use PageManager to get and cache all nodes
-            // collection for this folder
-            return getPageManager().getAll(this);
-        }
+            // get all nodes collection
+            if (!allCached)
+            {
+                // use PageManager to get and cache all nodes
+                // collection for this folder
+                return getPageManager().getAll(this);
+            }
 
+            // return cached nodes
+            nodes = getAllNodeSet();
+        }
+        
         // return nodes with view access
-        return filterNodeSetByAccess(getAllNodeSet());
+        return filterNodeSetByAccess(nodes);
     }
     
     /* (non-Javadoc)
@@ -947,7 +1043,8 @@
     /**
      * getFoldersNodeSet
      *
-     * Latently create and access folders node set.
+     * Latently create and access folders node set,
+     * (assume cacheLock synchronized by caller).
      *
      * @return folders node set
      */
@@ -970,7 +1067,8 @@
     /**
      * getPagesNodeSet
      *
-     * Latently create and access pages node set.
+     * Latently create and access pages node set,
+     * (assume cacheLock synchronized by caller).
      *
      * @return folders node set
      */
@@ -994,6 +1092,7 @@
      * getLinksNodeSet
      *
      * Latently create and access links node set.
+     * (assume cacheLock synchronized by caller).
      *
      * @return folders node set
      */
@@ -1016,7 +1115,8 @@
     /**
      * getAllNodeSet
      *
-     * Latently create and access all nodes node set.
+     * Latently create and access all nodes node set,
+     * (assume cacheLock synchronized by caller).
      *
      * @return all nodes node set
      */
@@ -1026,12 +1126,7 @@
         {
             if ((all != null) && !all.isEmpty())
             {
-                List allCopy = new java.util.ArrayList();
-                synchronized(all)
-                {
-                    allCopy.addAll(all); 
-                }
-                allNodeSet = new NodeSetImpl(allCopy, createDocumentOrderComparator());
+                allNodeSet = new NodeSetImpl(all, createDocumentOrderComparator());
             }
             else
             {
@@ -1105,11 +1200,26 @@
         return nodes;
     }
     
+    /**
+     * Return page manager infused by or accessed from cache.
+     * 
+     * @return cached/infused page manager
+     */
     public PageManager getPageManager()
     {
-        if(pageManager == null)
-        {
-            pageManager = (PageManager)Jetspeed.getComponentManager().getComponent("org.apache.jetspeed.page.PageManager");
+        // page manager should never be null, but there have been
+        // reports of this happening; normally this and other
+        // properties are configured by the cache, so access page
+        // manager and infuse other settings accordingly
+        if (pageManager == null)
+        {
+            // infuse PageManager
+            pageManager = DatabasePageManagerCache.getPageManager();
+            setConstraintsEnabled(pageManager.getConstraintsEnabled());
+            setPermissionsEnabled(pageManager.getPermissionsEnabled());
+            resetAll(false);
+            // log warning since this is unexpected
+            log.warn("Folder "+getPath()+" not managed: Folder operations probably invoked before Folder added to PageManager");
         }        
         return pageManager;
     }     

Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderMenuDefinitionElementList.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderMenuDefinitionElementList.java?rev=731466&r1=731465&r2=731466&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderMenuDefinitionElementList.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderMenuDefinitionElementList.java Sun Jan  4 22:04:13 2009
@@ -55,7 +55,7 @@
     /* (non-Javadoc)
      * @see java.util.List#add(int,java.lang.Object)
      */
-    public void add(int index, Object element)
+    public synchronized void add(int index, Object element)
     {
         // implement for modifiable AbstractList:
         // validate index
@@ -97,7 +97,7 @@
     /* (non-Javadoc)
      * @see java.util.List#get(int)
      */
-    public Object get(int index)
+    public synchronized Object get(int index)
     {
         // implement for modifiable AbstractList
         return menuDefinition.accessElements().get(index);
@@ -106,7 +106,7 @@
     /* (non-Javadoc)
      * @see java.util.List#remove(int)
      */
-    public Object remove(int index)
+    public synchronized Object remove(int index)
     {
         // implement for modifiable AbstractList
         return menuDefinition.accessElements().remove(index);
@@ -115,7 +115,7 @@
     /* (non-Javadoc)
      * @see java.util.List#set(int,java.lang.Object)
      */
-    public Object set(int index, Object element)
+    public synchronized Object set(int index, Object element)
     {
         // implement for modifiable AbstractList:
         // verify element
@@ -131,7 +131,7 @@
     /* (non-Javadoc)
      * @see java.util.List#size()
      */
-    public int size()
+    public synchronized int size()
     {
         // implement for modifiable AbstractList
         return menuDefinition.accessElements().size();

Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderMenuDefinitionList.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderMenuDefinitionList.java?rev=731466&r1=731465&r2=731466&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderMenuDefinitionList.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderMenuDefinitionList.java Sun Jan  4 22:04:13 2009
@@ -17,10 +17,9 @@
 package org.apache.jetspeed.om.folder.impl;
 
 import java.util.AbstractList;
+import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.jetspeed.page.impl.DatabasePageManagerUtils;
-
 /**
  * FolderMenuDefinitionList
  *
@@ -106,7 +105,7 @@
     {
         if (removedMenuDefinitions == null)
         {
-            removedMenuDefinitions = DatabasePageManagerUtils.createList();
+            removedMenuDefinitions = new ArrayList();
         }
         return removedMenuDefinitions;
     }
@@ -114,7 +113,7 @@
     /* (non-Javadoc)
      * @see java.util.List#add(int,java.lang.Object)
      */
-    public void add(int index, Object element)
+    public synchronized void add(int index, Object element)
     {
         // implement for modifiable AbstractList:
         // validate index
@@ -131,7 +130,7 @@
     /* (non-Javadoc)
      * @see java.util.List#get(int)
      */
-    public Object get(int index)
+    public synchronized Object get(int index)
     {
         // implement for modifiable AbstractList
         return folder.accessMenus().get(index);
@@ -140,7 +139,7 @@
     /* (non-Javadoc)
      * @see java.util.List#remove(int)
      */
-    public Object remove(int index)
+    public synchronized Object remove(int index)
     {
         // implement for modifiable AbstractList:
         // save removed element 
@@ -155,7 +154,7 @@
     /* (non-Javadoc)
      * @see java.util.List#set(int,java.lang.Object)
      */
-    public Object set(int index, Object element)
+    public synchronized Object set(int index, Object element)
     {
         // implement for modifiable AbstractList:
         // verify menu definition
@@ -171,7 +170,7 @@
     /* (non-Javadoc)
      * @see java.util.List#size()
      */
-    public int size()
+    public synchronized int size()
     {
         // implement for modifiable AbstractList
         return folder.accessMenus().size();

Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderOrderList.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderOrderList.java?rev=731466&r1=731465&r2=731466&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderOrderList.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderOrderList.java Sun Jan  4 22:04:13 2009
@@ -17,10 +17,9 @@
 package org.apache.jetspeed.om.folder.impl;
 
 import java.util.AbstractList;
+import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.jetspeed.page.impl.DatabasePageManagerUtils;
-
 /**
  * FolderOrderList
  *
@@ -85,7 +84,7 @@
     {
         if (removedFolderOrders == null)
         {
-            removedFolderOrders = DatabasePageManagerUtils.createList();
+            removedFolderOrders = new ArrayList();
         }
         return removedFolderOrders;
     }
@@ -93,7 +92,7 @@
     /* (non-Javadoc)
      * @see java.util.List#add(int,java.lang.Object)
      */
-    public void add(int index, Object element)
+    public synchronized void add(int index, Object element)
     {
         // implement for modifiable AbstractList:
         // validate index
@@ -137,7 +136,7 @@
     /* (non-Javadoc)
      * @see java.util.List#get(int)
      */
-    public Object get(int index)
+    public synchronized Object get(int index)
     {
         // implement for modifiable AbstractList:
         // unwrap folder order name string
@@ -147,7 +146,7 @@
     /* (non-Javadoc)
      * @see java.util.List#remove(int)
      */
-    public Object remove(int index)
+    public synchronized Object remove(int index)
     {
         // implement for modifiable AbstractList
         FolderOrder removed = (FolderOrder)folder.accessFolderOrders().remove(index);
@@ -164,7 +163,7 @@
     /* (non-Javadoc)
      * @see java.util.List#set(int,java.lang.Object)
      */
-    public Object set(int index, Object element)
+    public synchronized Object set(int index, Object element)
     {
         // implement for modifiable AbstractList:
         // wrap and verify folder order name string
@@ -184,7 +183,7 @@
     /* (non-Javadoc)
      * @see java.util.List#size()
      */
-    public int size()
+    public synchronized int size()
     {
         // implement for modifiable AbstractList
         return folder.accessFolderOrders().size();

Copied: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderSecurityConstraintsContextImpl.java (from r728362, portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderSecurityConstraintsImpl.java)
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderSecurityConstraintsContextImpl.java?p2=portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderSecurityConstraintsContextImpl.java&p1=portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderSecurityConstraintsImpl.java&r1=728362&r2=731466&rev=731466&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderSecurityConstraintsImpl.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderSecurityConstraintsContextImpl.java Sun Jan  4 22:04:13 2009
@@ -16,18 +16,18 @@
  */
 package org.apache.jetspeed.om.folder.impl;
 
-import org.apache.jetspeed.om.page.impl.SecurityConstraintsImpl;
+import org.apache.jetspeed.om.page.impl.SecurityConstraintsContextImpl;
 
 /**
- * FolderSecurityConstraintsImpl
+ * FolderSecurityConstraintsContextImpl
  *
  * @author <a href="mailto:rwatler@apache.org">Randy Watler</a>
  * @version $Id$
  */
-public class FolderSecurityConstraintsImpl extends SecurityConstraintsImpl
+public class FolderSecurityConstraintsContextImpl extends SecurityConstraintsContextImpl
 {
     /* (non-Javadoc)
-     * @see org.apache.jetspeed.om.page.impl.SecurityConstraintsImpl#getSecurityConstraintClass()
+     * @see org.apache.jetspeed.om.page.impl.SecurityConstraintsContextImpl#getSecurityConstraintClass()
      */
     public Class getSecurityConstraintClass()
     {
@@ -35,7 +35,7 @@
     }
 
     /* (non-Javadoc)
-     * @see org.apache.jetspeed.om.page.impl.SecurityConstraintsImpl#getSecurityConstraintsRefClass()
+     * @see org.apache.jetspeed.om.page.impl.SecurityConstraintsContextImpl#getSecurityConstraintsRefClass()
      */
     public Class getSecurityConstraintsRefClass()
     {

Added: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/jpa/FolderBaseMenuDefinitionElement.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/jpa/FolderBaseMenuDefinitionElement.java?rev=731466&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/jpa/FolderBaseMenuDefinitionElement.java (added)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/jpa/FolderBaseMenuDefinitionElement.java Sun Jan  4 22:04:13 2009
@@ -0,0 +1,91 @@
+/*
+ * 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.folder.jpa;
+
+import javax.persistence.Basic;
+import javax.persistence.Column;
+import javax.persistence.DiscriminatorColumn;
+import javax.persistence.FetchType;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Inheritance;
+import javax.persistence.InheritanceType;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+import javax.persistence.Version;
+
+/**
+ * FolderBaseMenuDefinitionElement
+ * 
+ * @author <a href="mailto:rwatler@apache.org">Randy Watler</a>
+ * @version $Id:$
+ */
+@Entity
+@Inheritance (strategy=InheritanceType.SINGLE_TABLE)
+@Table (name="FOLDER_MENU")
+@DiscriminatorColumn (name="CLASS_NAME")
+public abstract class FolderBaseMenuDefinitionElement
+{
+    @Id
+    @GeneratedValue (strategy=GenerationType.AUTO)
+    @Column (name="MENU_ID")
+    private int id;
+    @Version
+    @Column (name="JPA_VERSION")
+    private int jpaVersion;
+    @ManyToOne (targetEntity=FolderMenuDefinitionImpl.class, fetch=FetchType.LAZY, optional=true)
+    @JoinColumn (name="PARENT_ID", referencedColumnName="MENU_ID")
+    private FolderMenuDefinitionImpl parent;
+    @Basic
+    @Column (name="ELEMENT_ORDER")
+    private int elementOrder;    
+
+    /**
+     * Explicitly set inverse relationship when this object
+     * is added to a one-to-many collection. JPA does not
+     * manage bidirectional relationships.
+     * 
+     * @param inverse inverse relationship owning object.
+     */
+    public void setInverseRelationship(Object inverse)
+    {
+        parent = (FolderMenuDefinitionImpl)inverse;
+    }
+    
+    /**
+     * getElementOrder
+     *
+     * @return element order
+     */
+    public int getElementOrder()
+    {
+        return elementOrder;
+    }
+
+    /**
+     * setElementOrder
+     *
+     * @param order element order
+     */
+    public void setElementOrder(int order)
+    {
+        elementOrder = order;
+    }
+}

Added: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/jpa/FolderBaseMenuDefinitionMetadata.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/jpa/FolderBaseMenuDefinitionMetadata.java?rev=731466&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/jpa/FolderBaseMenuDefinitionMetadata.java (added)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/jpa/FolderBaseMenuDefinitionMetadata.java Sun Jan  4 22:04:13 2009
@@ -0,0 +1,183 @@
+/*
+ * 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.folder.jpa;
+
+import java.util.Collection;
+import java.util.Locale;
+
+import javax.persistence.CascadeType;
+import javax.persistence.DiscriminatorColumn;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.Inheritance;
+import javax.persistence.InheritanceType;
+import javax.persistence.OneToMany;
+import javax.persistence.PostLoad;
+import javax.persistence.Table;
+import javax.persistence.Transient;
+
+import org.apache.jetspeed.om.page.PageMetadataImpl;
+import org.apache.jetspeed.om.page.jpa.MetadataLocalizedFieldCollection;
+import org.apache.jetspeed.om.portlet.GenericMetadata;
+import org.apache.jetspeed.page.impl.DatabasePageManagerUtils;
+
+/**
+ * FolderBaseMenuDefinitionMetadata
+ * 
+ * @author <a href="mailto:rwatler@apache.org">Randy Watler</a>
+ * @version $Id:$
+ */
+@Entity
+@Inheritance (strategy=InheritanceType.SINGLE_TABLE)
+@Table (name="FOLDER_MENU")
+@DiscriminatorColumn (name="CLASS_NAME")
+public abstract class FolderBaseMenuDefinitionMetadata extends FolderBaseMenuDefinitionElement 
+{
+    @OneToMany (targetEntity=FolderMenuMetadataLocalizedFieldImpl.class, mappedBy="menu", fetch=FetchType.LAZY, cascade=CascadeType.ALL)
+    private Collection metadataFields;
+
+    @PostLoad
+    private void eagerFetchCollections()
+    {
+        if (metadataFields != null)
+        {
+            metadataFields.size();
+        }
+    }    
+
+    @Transient
+    private PageMetadataImpl pageMetadata;
+
+    /**
+     * newPageMetadata
+     *
+     * Construct page manager specific metadata implementation.
+     *
+     * @param fields mutable fields collection
+     * @return page metadata
+     */
+    public abstract PageMetadataImpl newPageMetadata(Collection fields);
+
+    /**
+     * getPageMetadata
+     *
+     * Get page manager specific metadata implementation.
+     *
+     * @return page metadata
+     */
+    public PageMetadataImpl getPageMetadata()
+    {
+        if (pageMetadata == null)
+        {
+            if (metadataFields == null)
+            {
+                metadataFields = DatabasePageManagerUtils.createList();
+            }
+            pageMetadata = newPageMetadata(new MetadataLocalizedFieldCollection(this, metadataFields));
+        }
+        return pageMetadata;
+    }
+
+    /* (non-Javadoc)
+     * @see org.apache.jetspeed.om.folder.MenuDefinition#getTitle()
+     * @see org.apache.jetspeed.om.folder.MenuSeparatorDefinition#getTitle()
+     */
+    public String getTitle()
+    {
+        // no title available by default
+        return null;
+    }
+
+    /* (non-Javadoc)
+     * @see org.apache.jetspeed.om.folder.MenuDefinition#getShortTitle()
+     */
+    public String getShortTitle()
+    {
+        // no short title available by default
+        return null;
+    }
+
+    /* (non-Javadoc)
+     * @see org.apache.jetspeed.om.folder.MenuSeparatorDefinition#getText()
+     */
+    public String getText()
+    {
+        // no text available by default
+        return null;
+    }
+
+    /* (non-Javadoc)
+     * @see org.apache.jetspeed.om.folder.MenuDefinition#getTitle(java.util.Locale)
+     * @see org.apache.jetspeed.om.folder.MenuSeparatorDefinition#getTitle(java.util.Locale)
+     */
+    public String getTitle(Locale locale)
+    {
+        // get title from metadata or use default title
+        String title = getPageMetadata().getText("title", locale);
+        if (title == null)
+        {
+            title = getTitle();
+        }
+        return title;
+    }
+
+    /* (non-Javadoc)
+     * @see org.apache.jetspeed.om.folder.MenuDefinition#getShortTitle(java.util.Locale)
+     */
+    public String getShortTitle(Locale locale)
+    {
+        // get short title from metadata or use title from metadata,
+        // default short title, or default title
+        String shortTitle = getPageMetadata().getText("short-title", locale);
+        if (shortTitle == null)
+        {
+            shortTitle = getPageMetadata().getText("title", locale);
+            if (shortTitle == null)
+            {
+                shortTitle = getShortTitle();
+                if (shortTitle == null)
+                {
+                    shortTitle = getTitle();
+                }
+            }
+        }
+        return shortTitle;
+    }
+
+    /* (non-Javadoc)
+     * @see org.apache.jetspeed.om.folder.MenuSeparatorDefinition#getText(java.util.Locale)
+     */
+    public String getText(Locale locale)
+    {
+        // get title from metadata or use default title
+        String text = getPageMetadata().getText("text", locale);
+        if (text == null)
+        {
+            text = getText();
+        }
+        return text;
+    }
+
+    /* (non-Javadoc)
+     * @see org.apache.jetspeed.om.folder.MenuDefinition#getMetadata()
+     * @see org.apache.jetspeed.om.folder.MenuSeparatorDefinition#getMetadata()
+     */
+    public GenericMetadata getMetadata()
+    {
+        return getPageMetadata();
+    }
+}



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