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/11 22:58:24 UTC

svn commit: r733524 [1/6] - in /portals/jetspeed-2/portal/branches/JPA_BRANCH: components/jetspeed-page-manager/ components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/jpa/ components/jetspeed-page-manager/src/main/java/org/apache...

Author: rwatler
Date: Sun Jan 11 13:58:21 2009
New Revision: 733524

URL: http://svn.apache.org/viewvc?rev=733524&view=rev
Log:
JPA Registry Component Integration 
----------------------------------
- added new OM and managers for JPA specific registry implementation
- added registry context support for extended/long transaction entity managers
- consolidated JPA functionality used in both DBPM and Registry to RDBMS component
- upgraded JPA DBPM implementation to unify DBPM and Registry approaches
- note: as with DBPM, portal-level integration not attempted yet: JPA implementation in test cases only


Added:
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/jpa/OpenJPARemoteCommitListenerImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-rdbms/src/main/java/org/apache/jetspeed/components/util/jpa/
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-rdbms/src/main/java/org/apache/jetspeed/components/util/jpa/JPADatasourceEnabledSpringTestCase.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletentity/jpa/
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletentity/jpa/PortletEntityAccessComponentImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletentity/jpa/PortletEntityImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletpreferences/jpa/
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletpreferences/jpa/DatabasePreference.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletpreferences/jpa/DatabasePreferenceValue.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletpreferences/jpa/DatabasePreferenceValueCollection.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletpreferences/jpa/PortletPreferencesProviderImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletregistry/jpa/
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletregistry/jpa/PortletRegistryImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletregistry/jpa/RegistryManager.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletregistry/jpa/RegistryManagerContext.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletregistry/jpa/RegistryManagerImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/AbstractPortletApplicationDefinitionImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/AbstractPortletDefinitionImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/BaseLocalizedImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/CustomPortletModeDescriptionImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/CustomPortletModeImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/CustomWindowStateDescriptionImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/CustomWindowStateImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/DescriptionImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/DisplayNameImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/InitParamDescriptionImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/InitParamImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/JetspeedServiceReferenceImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/LanguageImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/LocalizedFieldImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/PortletApplicationDefinitionImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/PortletApplicationDescriptionImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/PortletApplicationDisplayNameImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/PortletApplicationLocalizedFieldImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/PortletApplicationMetadataImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/PortletDefinitionCollection.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/PortletDefinitionCollectionMember.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/PortletDefinitionDescriptionImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/PortletDefinitionDisplayNameImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/PortletDefinitionImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/PortletDefinitionList.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/PortletDefinitionLocalizedFieldImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/PortletDefinitionMetadataImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/SecurityRoleDescriptionImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/SecurityRoleImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/SecurityRoleRefDescriptionImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/SecurityRoleRefImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/SupportsImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/UserAttributeDescriptionImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/UserAttributeImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/UserAttributeRefDescriptionImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/jpa/UserAttributeRefImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/resources/
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/resources/META-INF/
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/resources/META-INF/persistence.xml
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/test/java/org/apache/jetspeed/components/portletentity/TestOpenJPAPortletEntityDAO.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/test/java/org/apache/jetspeed/components/portletpreferences/TestOpenJPAPortletPreferencesProvider.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/test/java/org/apache/jetspeed/components/portletregistry/TestOpenJPAPortletRegistryDAO.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/test/java/org/apache/jetspeed/components/portletregistry/TestOpenJPARegistryCache.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/test/java/org/apache/jetspeed/components/portletregistry/direct/TestOpenJPARegistryDirectAll.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/test/resources/jpa-registry.xml
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/test/resources/log4j.properties
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/test/resources/openjpa-registry-base.xml
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/test/resources/openjpa-registry.xml
Modified:
    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/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/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/FragmentImpl.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/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/PageSecurityImpl.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/impl/DatabasePageManager.java
    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/DatabasePageManagerImpl.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/resources/META-INF/persistence.xml
    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/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/TestSecureDatabasePageManager.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/TestTransactions.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-portal/src/test/java/org/apache/jetspeed/tools/pamanager/TestPortletDescriptorSecurityRoles.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-portal/src/test/java/org/apache/jetspeed/userinfo/TestUserInfoManager.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/pom.xml
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/components/portletregistry/PersistenceBrokerPortletRegistry.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/descriptor/JetspeedDescriptorServiceImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/InlinePortletResourceBundle.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletApplicationDefinitionImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletDefinitionImpl.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/test/java/org/apache/jetspeed/components/portletentity/TestPortletEntityDAO.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/test/java/org/apache/jetspeed/components/portletpreferences/TestPortletPreferencesProvider.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/test/java/org/apache/jetspeed/components/portletregistry/AbstractRegistryTest.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/test/java/org/apache/jetspeed/components/portletregistry/TestPortletRegistryDAO.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/test/java/org/apache/jetspeed/components/portletregistry/TestRegistryCache.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/test/java/org/apache/jetspeed/components/portletregistry/direct/TestRegistryDirectAll.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/test/java/org/apache/jetspeed/components/portletregistry/direct/TestRegistryDirectPart1a.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/src/test/java/org/apache/jetspeed/components/portletregistry/direct/TestRegistryDirectPart1b.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/jetspeed-api/src/main/java/org/apache/jetspeed/components/portletregistry/PortletRegistry.java
    portals/jetspeed-2/portal/branches/JPA_BRANCH/jetspeed-api/src/main/java/org/apache/jetspeed/om/portlet/PortletDefinition.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/registry-schema.xml
    portals/jetspeed-2/portal/branches/JPA_BRANCH/jetspeed-portal-resources/src/main/resources/assembly/deployment.xml
    portals/jetspeed-2/portal/branches/JPA_BRANCH/jetspeed-portal-resources/src/main/resources/assembly/static-bean-references.xml
    portals/jetspeed-2/portal/branches/JPA_BRANCH/jetspeed-portal-resources/src/main/resources/ddl/mssql/create-schema.sql

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=733524&r1=733523&r2=733524&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 11 13:58:21 2009
@@ -271,7 +271,7 @@
                     </execution>
                 </executions>
                 <dependencies>
-                    <!-- om objects implement jetspeed APIs -->
+                    <!-- om objects implement Jetspeed APIs -->
                     <dependency>
                         <groupId>${pom.groupId}</groupId>
                         <artifactId>jetspeed-api</artifactId>

Modified: 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=733524&r1=733523&r2=733524&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/jpa/FolderBaseMenuDefinitionMetadata.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/jpa/FolderBaseMenuDefinitionMetadata.java Sun Jan 11 13:58:21 2009
@@ -33,7 +33,7 @@
 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;
+import org.apache.jetspeed.page.jpa.DatabasePageManagerUtils;
 
 /**
  * FolderBaseMenuDefinitionMetadata

Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/jpa/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/jpa/FolderImpl.java?rev=733524&r1=733523&r2=733524&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/jpa/FolderImpl.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/jpa/FolderImpl.java Sun Jan 11 13:58:21 2009
@@ -125,6 +125,19 @@
     private List menus;
 
     @PostLoad
+    private void postLoad()
+    {
+        eagerFetchReferences();
+        eagerFetchCollections();
+        eagerFetchEmbeddedCollections();
+    }
+    private void eagerFetchReferences()
+    {
+        if (parent != null)
+        {
+            parent.getName();
+        }
+    }
     private void eagerFetchCollections()
     {
         if (metadataFields != null)
@@ -139,7 +152,6 @@
         {
             menus.size();
         }
-        eagerFetchEmbeddedCollections();
     }
     
     @Transient

Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/BaseElementImpl.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/page/jpa/BaseElementImpl.java?rev=733524&r1=733523&r2=733524&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/BaseElementImpl.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/BaseElementImpl.java Sun Jan 11 13:58:21 2009
@@ -124,18 +124,26 @@
      */
     public PageManager getPageManager()
     {
-        // page manager should never be null
+        // page manager should never be null: log
+        // error since this is unexpected
         if (pageManager == null)
         {
-            // log error since this is unexpected
             log.error("Element "+name+" not managed: operations probably invoked before element added to page manager");
         }
         return pageManager;
     }
 
     /**
-     * setPageManager
+     * Test infused page manager for this element.
      *
+     * @param pageManager page manager.
+     */
+    public boolean testPageManager(DatabasePageManager pageManager)
+    {
+        return (this.pageManager == pageManager);
+    }
+
+    /**
      * Infuses page manager for use by this element.
      *
      * @param pageManager page manager that manages this element.

Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/BaseMetadataLocalizedFieldImpl.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/page/jpa/BaseMetadataLocalizedFieldImpl.java?rev=733524&r1=733523&r2=733524&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/BaseMetadataLocalizedFieldImpl.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/BaseMetadataLocalizedFieldImpl.java Sun Jan 11 13:58:21 2009
@@ -173,6 +173,10 @@
      */
     public static String localeToString(Locale locale)
     {
+        if (locale == null)
+        {
+            return null;
+        }
         String country = locale.getCountry();
         String language = locale.getLanguage();
         String variant = locale.getVariant();
@@ -202,8 +206,12 @@
      */
     public static Locale stringToLocale(String locale)
     {
+        if (locale == null)
+        {
+            return null;
+        }
         StringTokenizer tokenizer = new StringTokenizer(locale, ",");
-        if (tokenizer.hasMoreTokens() == false)            
+        if (!tokenizer.hasMoreTokens())            
         {
             return JetspeedLocale.getDefaultLocale();
         }

Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/FragmentImpl.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/page/jpa/FragmentImpl.java?rev=733524&r1=733523&r2=733524&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/FragmentImpl.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/FragmentImpl.java Sun Jan 11 13:58:21 2009
@@ -134,6 +134,11 @@
     private List preferences;
 
     @PostLoad
+    private void postLoad()
+    {
+        eagerFetchCollections();
+        eagerFetchEmbeddedCollections();
+    }
     private void eagerFetchCollections()
     {
         if (fragments != null)
@@ -144,7 +149,6 @@
         {
             preferences.size();
         }
-        eagerFetchEmbeddedCollections();
     }
 
     @Transient

Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/LinkImpl.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/page/jpa/LinkImpl.java?rev=733524&r1=733523&r2=733524&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/LinkImpl.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/LinkImpl.java Sun Jan 11 13:58:21 2009
@@ -70,7 +70,7 @@
     @Column (name="IS_HIDDEN")
     private boolean hidden;
 
-    @ManyToOne (targetEntity=FolderImpl.class, fetch=FetchType.LAZY, optional=true, cascade=CascadeType.PERSIST)
+    @ManyToOne (targetEntity=FolderImpl.class, fetch=FetchType.LAZY, optional=false, cascade=CascadeType.PERSIST)
     @JoinColumn (name="PARENT_ID", referencedColumnName="FOLDER_ID")
     private FolderImpl parent;
     @OneToMany (targetEntity=LinkMetadataLocalizedFieldImpl.class, mappedBy="link", fetch=FetchType.LAZY, cascade=CascadeType.ALL)
@@ -86,13 +86,25 @@
     private String url;
 
     @PostLoad
+    private void postLoad()
+    {
+        eagerFetchReferences();
+        eagerFetchCollections();
+        eagerFetchEmbeddedCollections();
+    }
+    private void eagerFetchReferences()
+    {
+        if (parent != null)
+        {
+            parent.getName();
+        }
+    }
     private void eagerFetchCollections()
     {
         if (metadataFields != null)
         {
             metadataFields.size();
         }
-        eagerFetchEmbeddedCollections();
     }
 
     /**

Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/PageBaseMenuDefinitionMetadata.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/page/jpa/PageBaseMenuDefinitionMetadata.java?rev=733524&r1=733523&r2=733524&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/PageBaseMenuDefinitionMetadata.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/PageBaseMenuDefinitionMetadata.java Sun Jan 11 13:58:21 2009
@@ -32,7 +32,7 @@
 
 import org.apache.jetspeed.om.page.PageMetadataImpl;
 import org.apache.jetspeed.om.portlet.GenericMetadata;
-import org.apache.jetspeed.page.impl.DatabasePageManagerUtils;
+import org.apache.jetspeed.page.jpa.DatabasePageManagerUtils;
 
 /**
  * PageBaseMenuDefinitionMetadata

Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/PageImpl.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/page/jpa/PageImpl.java?rev=733524&r1=733523&r2=733524&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/PageImpl.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/PageImpl.java Sun Jan 11 13:58:21 2009
@@ -80,7 +80,7 @@
     @Column (name="IS_HIDDEN")
     private boolean hidden;
 
-    @ManyToOne (targetEntity=FolderImpl.class, fetch=FetchType.LAZY, optional=true, cascade=CascadeType.PERSIST)
+    @ManyToOne (targetEntity=FolderImpl.class, fetch=FetchType.LAZY, optional=false, cascade=CascadeType.PERSIST)
     @JoinColumn (name="PARENT_ID", referencedColumnName="FOLDER_ID")
     private FolderImpl parent;
     @OneToMany (targetEntity=PageMetadataLocalizedFieldImpl.class, mappedBy="page", fetch=FetchType.LAZY, cascade=CascadeType.ALL)
@@ -101,6 +101,19 @@
     private List menus;
 
     @PostLoad
+    private void postLoad()
+    {
+        eagerFetchReferences();
+        eagerFetchCollections();
+        eagerFetchEmbeddedCollections();
+    }
+    private void eagerFetchReferences()
+    {
+        if (parent != null)
+        {
+            parent.getName();
+        }
+    }
     private void eagerFetchCollections()
     {
         if (metadataFields != null)
@@ -115,7 +128,6 @@
         {
             menus.size();
         }
-        eagerFetchEmbeddedCollections();
     }
 
     @Transient

Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/PageSecurityImpl.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/page/jpa/PageSecurityImpl.java?rev=733524&r1=733523&r2=733524&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/PageSecurityImpl.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/page/jpa/PageSecurityImpl.java Sun Jan 11 13:58:21 2009
@@ -63,7 +63,7 @@
                @NamedQuery(name="PAGE_SECURITY", query="select ps from PageSecurity ps where ps.path = :path")})
 public class PageSecurityImpl extends DocumentImpl implements PageSecurity
 {
-    @ManyToOne (targetEntity=FolderImpl.class, fetch=FetchType.LAZY, optional=true, cascade=CascadeType.PERSIST)
+    @ManyToOne (targetEntity=FolderImpl.class, fetch=FetchType.LAZY, optional=false, cascade=CascadeType.PERSIST)
     @JoinColumn (name="PARENT_ID", referencedColumnName="FOLDER_ID")
     private FolderImpl parent;
     @OneToMany (targetEntity=SecurityConstraintsDefImpl.class, mappedBy="pageSecurity", fetch=FetchType.LAZY, cascade=CascadeType.ALL)
@@ -74,6 +74,18 @@
     private List globalConstraintsRefs;
     
     @PostLoad
+    private void postLoad()
+    {
+        eagerFetchReferences();
+        eagerFetchCollections();
+    }
+    private void eagerFetchReferences()
+    {
+        if (parent != null)
+        {
+            parent.getName();
+        }
+    }
     private void eagerFetchCollections()
     {
         if (constraintsDefs != null)

Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/AbstractPageManager.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/AbstractPageManager.java?rev=733524&r1=733523&r2=733524&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/AbstractPageManager.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/AbstractPageManager.java Sun Jan 11 13:58:21 2009
@@ -153,31 +153,6 @@
     }
 
     /* (non-Javadoc)
-     * @see org.apache.jetspeed.page.PageManager#registerContext(java.lang.Object)
-     */
-    public void registerContext(Object context)
-    {
-        // no context supported by default
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.jetspeed.page.PageManager#getContext()
-     */
-    public Object getContext()
-    {
-        // no context supported by default
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.jetspeed.page.PageManager#unregisterContext(java.lang.Object)
-     */
-    public void unregisterContext(Object context)
-    {
-        // no context supported by default
-    }
-
-    /* (non-Javadoc)
      * @see org.apache.jetspeed.page.PageManager#newPage(java.lang.String)
      */
     public Page newPage(String path)

Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/impl/DatabasePageManager.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/impl/DatabasePageManager.java?rev=733524&r1=733523&r2=733524&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/impl/DatabasePageManager.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/impl/DatabasePageManager.java Sun Jan 11 13:58:21 2009
@@ -188,30 +188,6 @@
     }
 
     /* (non-Javadoc)
-     * @see org.apache.jetspeed.page.PageManager#registerContext(java.lang.Object)
-     */
-    public void registerContext(Object context)
-    {
-        delegator.registerContext(context);
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.jetspeed.page.PageManager#getContext()
-     */
-    public Object getContext()
-    {
-        return delegator.getContext();
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.jetspeed.page.PageManager#unregisterContext(java.lang.Object)
-     */
-    public void unregisterContext(Object context)
-    {
-        delegator.unregisterContext(context);
-    }
-
-    /* (non-Javadoc)
      * @see org.apache.jetspeed.page.PageManager#newPage(java.lang.String)
      */
     public Page newPage(String path)

Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/jpa/DatabasePageManager.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/jpa/DatabasePageManager.java?rev=733524&r1=733523&r2=733524&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/jpa/DatabasePageManager.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/jpa/DatabasePageManager.java Sun Jan 11 13:58:21 2009
@@ -16,6 +16,8 @@
  */
 package org.apache.jetspeed.page.jpa;
 
+import javax.persistence.EntityManager;
+
 import org.apache.jetspeed.page.PageManager;
 
 /**
@@ -42,4 +44,34 @@
      * @return global cached constraints version
      */
     public long getCachedConstraintsVersion();
+
+    /**
+     * Return entity manager associated with current thread from
+     * registered context or default transactional entity manager
+     * created for this request.
+     * 
+     * @return entity manager.
+     */
+    public EntityManager getEntityManager();
+
+    /**
+     * Register page manager context with current thread.
+     * 
+     * @param context page manager context.
+     */
+    public void registerContext(Object context);
+
+    /**
+     * Get page manager context registered with current thread.
+     * 
+     * @return page manager context.
+     */
+    public Object getContext();
+
+    /**
+     * Unregister page manager context with current thread.
+     * 
+     * @param context page manager context.
+     */
+    public void unregisterContext(Object context);
 }

Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/jpa/DatabasePageManagerImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/jpa/DatabasePageManagerImpl.java?rev=733524&r1=733523&r2=733524&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/jpa/DatabasePageManagerImpl.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/jpa/DatabasePageManagerImpl.java Sun Jan 11 13:58:21 2009
@@ -23,11 +23,12 @@
 import java.util.List;
 import java.util.Map;
 
-import javax.persistence.EntityExistsException;
 import javax.persistence.EntityManager;
 import javax.persistence.NoResultException;
 import javax.persistence.PersistenceContext;
+import javax.persistence.PersistenceContextType;
 import javax.persistence.Query;
+
 import javax.security.auth.Subject;
 
 import org.apache.jetspeed.JetspeedActions;
@@ -152,6 +153,18 @@
     }
 
     /**
+     * Inject proxied page manager interface used to
+     * inject into Folder instances to provide
+     * transaction/interception.
+     *
+     * @param proxy proxied page manager interface.
+     */
+    public void setDatabasePageManagerProxy(DatabasePageManager proxy)
+    {
+        databasePageManagerProxy = proxy;
+    }
+
+    /**
      * Inject shared entity manager from assembly; this entity
      * manager is expected to honor existing entity manager
      * context attached to current thread, (otherwise, a new
@@ -159,14 +172,23 @@
      * 
      * @param entityManager injected shared entity manager
      */
-    @PersistenceContext (unitName="jetspeed-page-manager")
+    @PersistenceContext (type=PersistenceContextType.TRANSACTION, unitName="jetspeed-page-manager")
     public void setEntityManager(EntityManager entityManager) 
     {
         this.entityManager = entityManager;
     }
     
     /* (non-Javadoc)
-     * @see org.apache.jetspeed.page.PageManager#registerContext(java.lang.Object)
+     * @see org.apache.jetspeed.page.jpa.DatabasePageManager#getEntityManager()
+     */
+    public EntityManager getEntityManager()
+    {
+        DatabasePageManagerContext context = (DatabasePageManagerContext)getContext();
+        return ((context != null) ? context.getExtendedEntityManager() : entityManager);
+    }
+    
+    /* (non-Javadoc)
+     * @see org.apache.jetspeed.page.jpa.DatabasePageManager#registerContext(java.lang.Object)
      */
     public void registerContext(Object context)
     {
@@ -178,7 +200,7 @@
     }
 
     /* (non-Javadoc)
-     * @see org.apache.jetspeed.page.PageManager#getContext()
+     * @see org.apache.jetspeed.page.jpa.DatabasePageManager#getContext()
      */
     public Object getContext()
     {
@@ -186,7 +208,7 @@
     }
 
     /* (non-Javadoc)
-     * @see org.apache.jetspeed.page.PageManager#unregisterContext(java.lang.Object)
+     * @see org.apache.jetspeed.page.jpa.DatabasePageManager#unregisterContext(java.lang.Object)
      */
     public void unregisterContext(Object context)
     {
@@ -197,31 +219,6 @@
         }
     }
 
-    /**
-     * Return entity manager associated with current thread from
-     * registered context or default transactional entity manager
-     * created for this request.
-     * 
-     * @return entity manager.
-     */
-    protected EntityManager getEntityManager()
-    {
-        DatabasePageManagerContext context = (DatabasePageManagerContext)getContext();
-        return ((context != null) ? context.getExtendedEntityManager() : entityManager);
-    }
-    
-    /**
-     * Inject proxied page manager interface used to
-     * inject into Folder instances to provide
-     * transaction/interception.
-     *
-     * @param proxy proxied page manager interface.
-     */
-    public void setDatabasePageManagerProxy(DatabasePageManager proxy)
-    {
-        databasePageManagerProxy = proxy;
-    }
-
     /* (non-Javadoc)
      * @see org.apache.jetspeed.page.jpa.DatabasePageManager#getCachedConstraintsVersion()
      */
@@ -2031,7 +2028,7 @@
         {
             // skip if previously infused
             BaseElementImpl baseElement = (BaseElementImpl)element;
-            if (baseElement.getPageManager() != databasePageManagerProxy)
+            if (!baseElement.testPageManager(databasePageManagerProxy))
             {
                 // infuse base element
                 baseElement.setPageManager(databasePageManagerProxy);
@@ -2099,7 +2096,7 @@
             }
         }
         entityManager.remove(element);
-        // explicitly flush entity manager after update
+        // explicitly flush entity manager after remove
         entityManager.flush();
         return element;
     }

Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/jpa/OpenJPADatabasePageManagerImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/jpa/OpenJPADatabasePageManagerImpl.java?rev=733524&r1=733523&r2=733524&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/jpa/OpenJPADatabasePageManagerImpl.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/jpa/OpenJPADatabasePageManagerImpl.java Sun Jan 11 13:58:21 2009
@@ -16,10 +16,11 @@
  */
 package org.apache.jetspeed.page.jpa;
 
-import javax.persistence.EntityExistsException;
+import javax.persistence.EntityManager;
 
 import org.apache.openjpa.conf.OpenJPAConfiguration;
-import org.apache.openjpa.event.RemoteCommitEvent;
+import org.apache.openjpa.datacache.DataCache;
+import org.apache.openjpa.datacache.DataCacheManager;
 import org.apache.openjpa.event.RemoteCommitEventManager;
 import org.apache.openjpa.event.RemoteCommitListener;
 import org.apache.openjpa.event.RemoteCommitProvider;
@@ -35,6 +36,7 @@
 public class OpenJPADatabasePageManagerImpl extends DatabasePageManagerImpl
 {
     private RemoteCommitEventManager openJPAEventManager;
+    private DataCache openJPASystemDataCache;
     private boolean distributed;
     private RemoteCommitListener listener;
     
@@ -63,7 +65,8 @@
     public void initialize()
     {
         // get OpenJPA entity manager and event manager
-        EntityManagerImpl openJPAEntityManager = (EntityManagerImpl)getEntityManager().getDelegate();
+        EntityManager entityManager = getEntityManager();
+        EntityManagerImpl openJPAEntityManager = (EntityManagerImpl)entityManager.getDelegate();
         if (openJPAEntityManager != null)
         {
             // check OpenJPA configuration for distributed operation
@@ -74,47 +77,20 @@
                 RemoteCommitProvider provider = openJPAEventManager.getRemoteCommitProvider();
                 distributed = ((provider != null) && !(provider instanceof SingleJVMRemoteCommitProvider));
             }
+            // access system wide data cache
+            DataCacheManager openJPADataCacheManager = configuration.getDataCacheManagerInstance();
+            openJPASystemDataCache = openJPADataCacheManager.getSystemDataCache();
         }
+        entityManager.close();
+
         // register remote listener for distributed operation
-        if ((openJPAEventManager != null) && distributed)
+        if ((openJPAEventManager != null) && (openJPASystemDataCache != null) && distributed)
         {
-            listener = new RemoteCommitListener()
-            {
-                /* (non-Javadoc)
-                 * @see org.apache.openjpa.event.RemoteCommitListener#afterCommit(org.apache.openjpa.event.RemoteCommitEvent)
-                 */
-                public void afterCommit(RemoteCommitEvent event)
-                {
-                    switch (event.getPayloadType())
-                    {
-                        case RemoteCommitEvent.PAYLOAD_EXTENTS :
-                        case RemoteCommitEvent.PAYLOAD_OIDS :
-                        case RemoteCommitEvent.PAYLOAD_OIDS_WITH_ADDS :
-                        {
-                            // node instance not generally available or worth
-                            // creating transactional scope to lookup from oids:
-                            // notify page manager listeners with unspecified
-                            // updated node
-                            notifyUpdatedNode(null);
-                        }
-                        break;
-                        case RemoteCommitEvent.PAYLOAD_LOCAL_STALE_DETECTION :
-                        default :
-                        {
-                            // ignore local or unknown payloads.
-                        }
-                        break;
-                    }
-                }
-
-                /* (non-Javadoc)
-                 * @see org.apache.openjpa.event.RemoteCommitListener#close()
-                 */
-                public void close()
-                {
-                }                
-            };
-            openJPAEventManager.addListener(listener);
+            listener = new OpenJPARemoteCommitListenerImpl(this, openJPASystemDataCache);
+            // add as an internal listener to receive events
+            // before underlying caches so that oids can be
+            // looked up in the internal system caches
+            openJPAEventManager.addInternalListener(listener);
         }
     }
 

Added: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/jpa/OpenJPARemoteCommitListenerImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/jpa/OpenJPARemoteCommitListenerImpl.java?rev=733524&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/jpa/OpenJPARemoteCommitListenerImpl.java (added)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/page/jpa/OpenJPARemoteCommitListenerImpl.java Sun Jan 11 13:58:21 2009
@@ -0,0 +1,189 @@
+/*
+ * 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.jpa;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.jetspeed.page.document.Node;
+import org.apache.jetspeed.om.folder.jpa.FolderImpl;
+import org.apache.jetspeed.om.page.jpa.LinkImpl;
+import org.apache.jetspeed.om.page.jpa.PageImpl;
+import org.apache.jetspeed.om.page.jpa.PageSecurityImpl;
+import org.apache.openjpa.datacache.DataCache;
+import org.apache.openjpa.datacache.DataCachePCData;
+import org.apache.openjpa.event.RemoteCommitEvent;
+import org.apache.openjpa.event.RemoteCommitListener;
+
+/**
+ * OpenJPARemoteCommitListenerImpl
+ * 
+ * @author <a href="mailto:rwatler@apache.org">Randy Watler</a>
+ * @version $Id: $
+ */
+public class OpenJPARemoteCommitListenerImpl implements RemoteCommitListener
+{
+    private static final Log log = LogFactory.getLog(OpenJPARemoteCommitListenerImpl.class);
+
+    private DatabasePageManager databasePageManager;
+    private DataCache openJPASystemDataCache;
+    
+    public OpenJPARemoteCommitListenerImpl(DatabasePageManager databasePageManager, DataCache openJPASystemDataCache)
+    {
+        this.databasePageManager = databasePageManager;
+        this.openJPASystemDataCache = openJPASystemDataCache;
+    }
+    
+    /* (non-Javadoc)
+     * @see org.apache.openjpa.event.RemoteCommitListener#afterCommit(org.apache.openjpa.event.RemoteCommitEvent)
+     */
+    public void afterCommit(RemoteCommitEvent event)
+    {
+        try
+        {
+            switch (event.getPayloadType())
+            {
+                case RemoteCommitEvent.PAYLOAD_OIDS_WITH_ADDS :
+                case RemoteCommitEvent.PAYLOAD_OIDS :
+                {
+                    // lookup oids in system cache if available
+                    if (openJPASystemDataCache != null)
+                    {
+                        // get payload delete/update oid/class pairs from event
+                        class PayloadOidClassPairData
+                        {
+                            Object payloadOid;
+                            Class payloadClass;
+                            Node payloadNode;
+                            PayloadOidClassPairData(Object payloadOid,Class payloadClass)
+                            {
+                                this.payloadOid = payloadOid;
+                                this.payloadClass = payloadClass;
+                            }
+                        }
+                        List<PayloadOidClassPairData> payloadOidClassPairsData = new ArrayList<PayloadOidClassPairData>();
+                        Collection deletedIds = event.getDeletedObjectIds();
+                        if (deletedIds != null)
+                        {
+                            for (Iterator iter = deletedIds.iterator(); iter.hasNext();)
+                            {
+                                DataCachePCData cacheData = openJPASystemDataCache.get(iter.next());
+                                if ((cacheData != null) && (cacheData.getId() != null) && (cacheData.getType() != null))
+                                {
+                                    payloadOidClassPairsData.add(new PayloadOidClassPairData(cacheData.getId(), cacheData.getType()));
+                                }
+                            }
+                        }
+                        Collection updatedIds = event.getUpdatedObjectIds();
+                        if (updatedIds != null)
+                        {
+                            for (Iterator iter = updatedIds.iterator(); iter.hasNext();)
+                            {
+                                DataCachePCData cacheData = openJPASystemDataCache.get(iter.next());
+                                if ((cacheData != null) && (cacheData.getId() != null) && (cacheData.getType() != null))
+                                {
+                                    payloadOidClassPairsData.add(new PayloadOidClassPairData(cacheData.getId(), cacheData.getType()));
+                                }
+                            }
+                        }
+
+                        // lookup payload nodes, (nodes will be detached)
+                        if ((payloadOidClassPairsData != null) && !payloadOidClassPairsData.isEmpty())
+                        {
+                            // get transient entity manager for lookups
+                            EntityManager entityManager = databasePageManager.getEntityManager();
+                            try
+                            {
+                                // lookup payload node from oid/class pair
+                                for (Iterator<PayloadOidClassPairData> iter = payloadOidClassPairsData.iterator(); iter.hasNext();)
+                                {
+                                    PayloadOidClassPairData data = iter.next();
+                                    // check class for node types
+                                    if (data.payloadClass.equals(PageImpl.class) || data.payloadClass.equals(FolderImpl.class) || data.payloadClass.equals(LinkImpl.class) || data.payloadClass.equals(PageSecurityImpl.class))
+                                    {
+                                        data.payloadNode = (Node)entityManager.find(data.payloadClass, data.payloadOid);
+                                    }
+                                    // remove payload data if node not found
+                                    if (data.payloadNode == null)
+                                    {
+                                        iter.remove();
+                                    }
+                                }
+                            }
+                            finally
+                            {
+                                entityManager.close();
+                            }
+                        }
+                        
+                        // send updated notification for each node looked up
+                        // successfully or a single notification with an
+                        // unspecified update node
+                        if ((payloadOidClassPairsData != null) && !payloadOidClassPairsData.isEmpty())
+                        {
+                            for (PayloadOidClassPairData data : payloadOidClassPairsData)
+                            {
+                                databasePageManager.notifyUpdatedNode(data.payloadNode);
+                            }
+                        }
+                        else
+                        {
+                            databasePageManager.notifyUpdatedNode(null);
+                        }
+                    }
+                    else
+                    {
+                        // node instances not available: notify page manager
+                        // listeners with unspecified updated node
+                        databasePageManager.notifyUpdatedNode(null);                                    
+                    }
+                }
+                break;
+                case RemoteCommitEvent.PAYLOAD_EXTENTS :
+                {
+                    // node instances not available: notify page manager
+                    // listeners with unspecified updated node
+                    databasePageManager.notifyUpdatedNode(null);
+                }
+                break;
+                case RemoteCommitEvent.PAYLOAD_LOCAL_STALE_DETECTION :
+                default :
+                {
+                    // ignore local or unknown payloads.
+                }
+                break;
+            }
+        }
+        catch (Exception e)
+        {
+            log.error("Unexpected exception handling remote commit event: "+e, e);
+        }
+    }
+
+    /* (non-Javadoc)
+     * @see org.apache.openjpa.event.RemoteCommitListener#close()
+     */
+    public void close()
+    {
+    }                
+}

Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/resources/META-INF/persistence.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/resources/META-INF/persistence.xml?rev=733524&r1=733523&r2=733524&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/resources/META-INF/persistence.xml (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/main/resources/META-INF/persistence.xml Sun Jan 11 13:58:21 2009
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+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.
+-->
 <persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
 
     <persistence-unit name="jetspeed-page-manager">

Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestDatabasePageManager.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestDatabasePageManager.java?rev=733524&r1=733523&r2=733524&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestDatabasePageManager.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestDatabasePageManager.java Sun Jan 11 13:58:21 2009
@@ -20,7 +20,7 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
-import org.apache.jetspeed.components.util.DatasourceEnabledSpringTestCase;
+import org.apache.jetspeed.components.util.jpa.JPADatasourceEnabledSpringTestCase;
 import org.apache.jetspeed.om.common.SecurityConstraint;
 import org.apache.jetspeed.om.common.SecurityConstraintsContext;
 import org.apache.jetspeed.om.folder.Folder;
@@ -50,7 +50,7 @@
  * @version $Id: $
  *          
  */
-public class TestDatabasePageManager extends DatasourceEnabledSpringTestCase implements PageManagerTestShared
+public class TestDatabasePageManager extends JPADatasourceEnabledSpringTestCase implements PageManagerTestShared
 {
     private static final String deepFolderPath = "/__subsite-rootx/_user/userx/_role/rolex/_group/groupx/_mediatype/xhtml/_language/en/_country/us/_custom/customx";
     private static final String deepPagePath = deepFolderPath + "/default-page.psml";       
@@ -66,17 +66,6 @@
     }
     
     /* (non-Javadoc)
-     * @see org.apache.jetspeed.components.util.DatasourceEnabledSpringTestCase#setUp()
-     */
-    protected void setUp() throws Exception
-    {
-        // setup
-        super.setUp();
-        // start test conversational transaction
-        startConversationalTxn();
-    }
-
-    /* (non-Javadoc)
      * @see org.apache.jetspeed.components.test.AbstractSpringTestCase#getConfigurations()
      */
     protected String[] getConfigurations()
@@ -84,33 +73,6 @@
         return new String[]{"database-page-manager.xml", "transaction.xml"};
     }
 
-    /**
-     * Start conversational transaction for current thread.
-     */
-    protected void startConversationalTxn()
-    {
-        // N/A for OJB based implementation with detached object caches.
-    }
-    
-    /**
-     * End conversational transaction for current thread.
-     */
-    protected void endConversationalTxn()
-    {
-        // N/A for OJB based implementation with detached object caches.
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.jetspeed.components.util.DatasourceEnabledSpringTestCase#tearDown()
-     */
-    protected void tearDown() throws Exception
-    {
-        // end test conversational transaction
-        endConversationalTxn();
-        // teardown
-        super.tearDown();
-    }
-    
     public void firstTestSetup() throws Exception
     {
         try

Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestOpenJPADatabasePageManager.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestOpenJPADatabasePageManager.java?rev=733524&r1=733523&r2=733524&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestOpenJPADatabasePageManager.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestOpenJPADatabasePageManager.java Sun Jan 11 13:58:21 2009
@@ -50,7 +50,7 @@
     }
     
     /* (non-Javadoc)
-     * @see org.apache.jetspeed.page.TestDatabasePageManager#startConversationalTxn()
+     * @see org.apache.jetspeed.components.util.jpa.JPADatasourceEnabledSpringTestCase#startConversationalTxn()
      */
     protected void startConversationalTxn()
     {
@@ -59,7 +59,7 @@
     }
     
     /* (non-Javadoc)
-     * @see org.apache.jetspeed.page.TestDatabasePageManager#endConversationalTxn()
+     * @see org.apache.jetspeed.components.util.jpa.JPADatasourceEnabledSpringTestCase#endConversationalTxn()
      */
     protected void endConversationalTxn()
     {

Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestOpenJPATransactions.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestOpenJPATransactions.java?rev=733524&r1=733523&r2=733524&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestOpenJPATransactions.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestOpenJPATransactions.java Sun Jan 11 13:58:21 2009
@@ -52,7 +52,7 @@
     }
     
     /* (non-Javadoc)
-     * @see org.apache.jetspeed.page.TestDatabasePageManager#startConversationalTxn()
+     * @see org.apache.jetspeed.components.util.jpa.JPADatasourceEnabledSpringTestCase#startConversationalTxn()
      */
     protected void startConversationalTxn()
     {
@@ -61,7 +61,7 @@
     }
     
     /* (non-Javadoc)
-     * @see org.apache.jetspeed.page.TestDatabasePageManager#endConversationalTxn()
+     * @see org.apache.jetspeed.components.util.jpa.JPADatasourceEnabledSpringTestCase#endConversationalTxn()
      */
     protected void endConversationalTxn()
     {

Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestSecureDatabasePageManager.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestSecureDatabasePageManager.java?rev=733524&r1=733523&r2=733524&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestSecureDatabasePageManager.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestSecureDatabasePageManager.java Sun Jan 11 13:58:21 2009
@@ -16,7 +16,7 @@
  */
 package org.apache.jetspeed.page;
 
-import org.apache.jetspeed.components.util.DatasourceEnabledSpringTestCase;
+import org.apache.jetspeed.components.util.jpa.JPADatasourceEnabledSpringTestCase;
 
 import junit.framework.Test;
 import junit.framework.TestSuite;
@@ -28,7 +28,7 @@
  * @version $Id: $
  *          
  */
-public class TestSecureDatabasePageManager extends DatasourceEnabledSpringTestCase implements PageManagerTestShared
+public class TestSecureDatabasePageManager extends JPADatasourceEnabledSpringTestCase implements PageManagerTestShared
 {
     /**
      * Create test suite.
@@ -42,17 +42,6 @@
     }
     
     /* (non-Javadoc)
-     * @see org.apache.jetspeed.components.util.DatasourceEnabledSpringTestCase#setUp()
-     */
-    protected void setUp() throws Exception
-    {
-        // setup
-        super.setUp();
-        // start test conversational transaction
-        startConversationalTxn();
-    }
-
-    /* (non-Javadoc)
      * @see org.apache.jetspeed.components.test.AbstractSpringTestCase#getConfigurations()
      */
     protected String[] getConfigurations()
@@ -60,33 +49,6 @@
         return new String[]{"secure-database-page-manager.xml", "transaction.xml"};
     }
 
-    /**
-     * Start conversational transaction for current thread.
-     */
-    protected void startConversationalTxn()
-    {
-        // N/A for OJB based implementation with detached object caches.
-    }
-    
-    /**
-     * End conversational transaction for current thread.
-     */
-    protected void endConversationalTxn()
-    {
-        // N/A for OJB based implementation with detached object caches.
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.jetspeed.components.util.DatasourceEnabledSpringTestCase#tearDown()
-     */
-    protected void tearDown() throws Exception
-    {
-        // end test conversational transaction
-        endConversationalTxn();
-        // teardown
-        super.tearDown();
-    }    
-    
     public void testSecurePageManager() throws Exception
     {
         // utilize standard secure page manager test

Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestSecureOpenJPADatabasePageManager.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestSecureOpenJPADatabasePageManager.java?rev=733524&r1=733523&r2=733524&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestSecureOpenJPADatabasePageManager.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestSecureOpenJPADatabasePageManager.java Sun Jan 11 13:58:21 2009
@@ -52,7 +52,7 @@
     }
     
     /* (non-Javadoc)
-     * @see org.apache.jetspeed.page.TestDatabasePageManager#startConversationalTxn()
+     * @see org.apache.jetspeed.components.util.jpa.JPADatasourceEnabledSpringTestCase#startConversationalTxn()
      */
     protected void startConversationalTxn()
     {
@@ -61,7 +61,7 @@
     }
     
     /* (non-Javadoc)
-     * @see org.apache.jetspeed.page.TestDatabasePageManager#endConversationalTxn()
+     * @see org.apache.jetspeed.components.util.jpa.JPADatasourceEnabledSpringTestCase#endConversationalTxn()
      */
     protected void endConversationalTxn()
     {

Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestSecurePermissionsOpenJPADatabasePageManager.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestSecurePermissionsOpenJPADatabasePageManager.java?rev=733524&r1=733523&r2=733524&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestSecurePermissionsOpenJPADatabasePageManager.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestSecurePermissionsOpenJPADatabasePageManager.java Sun Jan 11 13:58:21 2009
@@ -52,7 +52,7 @@
     }
     
     /* (non-Javadoc)
-     * @see org.apache.jetspeed.page.TestDatabasePageManager#startConversationalTxn()
+     * @see org.apache.jetspeed.components.util.jpa.JPADatasourceEnabledSpringTestCase#startConversationalTxn()
      */
     protected void startConversationalTxn()
     {
@@ -61,7 +61,7 @@
     }
     
     /* (non-Javadoc)
-     * @see org.apache.jetspeed.page.TestDatabasePageManager#endConversationalTxn()
+     * @see org.apache.jetspeed.components.util.jpa.JPADatasourceEnabledSpringTestCase#endConversationalTxn()
      */
     protected void endConversationalTxn()
     {

Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestTransactions.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestTransactions.java?rev=733524&r1=733523&r2=733524&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestTransactions.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/TestTransactions.java Sun Jan 11 13:58:21 2009
@@ -19,7 +19,7 @@
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
-import org.apache.jetspeed.components.util.DatasourceEnabledSpringTestCase;
+import org.apache.jetspeed.components.util.jpa.JPADatasourceEnabledSpringTestCase;
 import org.apache.jetspeed.om.folder.Folder;
 import org.apache.jetspeed.om.page.Page;
 
@@ -31,7 +31,7 @@
  * @version $Id: $
  *          
  */
-public class TestTransactions extends DatasourceEnabledSpringTestCase implements PageManagerTestShared
+public class TestTransactions extends JPADatasourceEnabledSpringTestCase implements PageManagerTestShared
 {
     /**
      * Create test suite.
@@ -45,17 +45,6 @@
     }
     
     /* (non-Javadoc)
-     * @see org.apache.jetspeed.components.util.DatasourceEnabledSpringTestCase#setUp()
-     */
-    protected void setUp() throws Exception
-    {
-        // setup
-        super.setUp();
-        // start test conversational transaction
-        startConversationalTxn();
-    }
-
-    /* (non-Javadoc)
      * @see org.apache.jetspeed.components.test.AbstractSpringTestCase#getConfigurations()
      */
     protected String[] getConfigurations()
@@ -63,33 +52,6 @@
         return new String[]{"database-page-manager.xml", "transaction.xml"}; 
     }
 
-    /**
-     * Start conversational transaction for current thread.
-     */
-    protected void startConversationalTxn()
-    {
-        // N/A for OJB based implementation with detached object caches.
-    }
-    
-    /**
-     * End conversational transaction for current thread.
-     */
-    protected void endConversationalTxn()
-    {
-        // N/A for OJB based implementation with detached object caches.
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.jetspeed.components.util.DatasourceEnabledSpringTestCase#tearDown()
-     */
-    protected void tearDown() throws Exception
-    {
-        // end test conversational transaction
-        endConversationalTxn();
-        // teardown
-        super.tearDown();
-    }
-    
     public void testTx() throws Exception
     {
         PageManager pageManager = (PageManager)scm.getComponent("pageManager");

Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/resources/jpa-database-page-manager.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/resources/jpa-database-page-manager.xml?rev=733524&r1=733523&r2=733524&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/resources/jpa-database-page-manager.xml (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-page-manager/src/test/resources/jpa-database-page-manager.xml Sun Jan 11 13:58:21 2009
@@ -39,6 +39,7 @@
     </bean>
     <bean id="abstractEntityManagerFactory" abstract="true" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
         <property name="persistenceUnitManager" ref="persistenceUnitManager"/>
+        <property name="persistenceUnitName" value="jetspeed-page-manager"/>
     </bean>
 
     <!-- Spring/JPA Transaction Manager -->

Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-portal/src/test/java/org/apache/jetspeed/tools/pamanager/TestPortletDescriptorSecurityRoles.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-portal/src/test/java/org/apache/jetspeed/tools/pamanager/TestPortletDescriptorSecurityRoles.java?rev=733524&r1=733523&r2=733524&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-portal/src/test/java/org/apache/jetspeed/tools/pamanager/TestPortletDescriptorSecurityRoles.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-portal/src/test/java/org/apache/jetspeed/tools/pamanager/TestPortletDescriptorSecurityRoles.java Sun Jan 11 13:58:21 2009
@@ -79,7 +79,7 @@
     {
         System.out.println("Testing securityRoles");
         File warFile = new File(getBaseDir()+"src/test/testdata/deploy/webapp");
-        JetspeedDescriptorService descriptorService = new JetspeedDescriptorServiceImpl(new PortletAppDescriptorServiceImpl());
+        JetspeedDescriptorService descriptorService = new JetspeedDescriptorServiceImpl(new PortletAppDescriptorServiceImpl(), portletRegistry);
         PortletApplicationWar paWar = new PortletApplicationWar(new DirectoryHelper(warFile), "unit-test", "/", descriptorService );
 
         PortletApplication portletApp = null;

Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-portal/src/test/java/org/apache/jetspeed/userinfo/TestUserInfoManager.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-portal/src/test/java/org/apache/jetspeed/userinfo/TestUserInfoManager.java?rev=733524&r1=733523&r2=733524&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-portal/src/test/java/org/apache/jetspeed/userinfo/TestUserInfoManager.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-portal/src/test/java/org/apache/jetspeed/userinfo/TestUserInfoManager.java Sun Jan 11 13:58:21 2009
@@ -90,7 +90,7 @@
 
     private void innerTestSetUserInfoMap(UserInfoManager uim) throws Exception
     {
-        JetspeedDescriptorService descriptorService = new JetspeedDescriptorServiceImpl(new PortletAppDescriptorServiceImpl());
+        JetspeedDescriptorService descriptorService = new JetspeedDescriptorServiceImpl(new PortletAppDescriptorServiceImpl(), portletRegistry);
         InputStream webDescriptor = new FileInputStream(getBaseDir()+"src/test/testdata/deploy/web.xml");
         InputStream portletDescriptor = new FileInputStream(getBaseDir()+"src/test/testdata/deploy/portlet.xml");
         InputStream jetspeedPortletDescriptor = new FileInputStream(getBaseDir()+"src/test/testdata/deploy/jetspeed-portlet.xml");

Added: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-rdbms/src/main/java/org/apache/jetspeed/components/util/jpa/JPADatasourceEnabledSpringTestCase.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-rdbms/src/main/java/org/apache/jetspeed/components/util/jpa/JPADatasourceEnabledSpringTestCase.java?rev=733524&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-rdbms/src/main/java/org/apache/jetspeed/components/util/jpa/JPADatasourceEnabledSpringTestCase.java (added)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-rdbms/src/main/java/org/apache/jetspeed/components/util/jpa/JPADatasourceEnabledSpringTestCase.java Sun Jan 11 13:58:21 2009
@@ -0,0 +1,64 @@
+/*
+ * 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.components.util.jpa;
+
+import org.apache.jetspeed.components.util.DatasourceEnabledSpringTestCase;
+
+/**
+ * JPADatasourceEnabledSpringTestCase
+ * 
+ * @author <a href="mailto:rwatler@apache.org">Randy Watler</a>
+ * @version $Id: $
+ */
+public abstract class JPADatasourceEnabledSpringTestCase extends DatasourceEnabledSpringTestCase
+{
+    /* (non-Javadoc)
+     * @see org.apache.jetspeed.components.util.DatasourceEnabledSpringTestCase#setUp()
+     */
+    protected void setUp() throws Exception
+    {
+        // setup
+        super.setUp();
+        // start optional test JPA conversational transaction
+        startConversationalTxn();
+    }
+
+    /* (non-Javadoc)
+     * @see org.apache.jetspeed.components.util.DatasourceEnabledSpringTestCase#tearDown()
+     */
+    protected void tearDown() throws Exception
+    {
+        // end optional test JPA conversational transaction
+        endConversationalTxn();
+        // teardown
+        super.tearDown();
+    }
+    
+    /**
+     * Start optional JPA conversational transaction for current thread.
+     */
+    protected void startConversationalTxn()
+    {
+    }
+    
+    /**
+     * End optional JPA conversational transaction for current thread.
+     */
+    protected void endConversationalTxn()
+    {
+    }
+}

Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/pom.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/pom.xml?rev=733524&r1=733523&r2=733524&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/pom.xml (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-registry/pom.xml Sun Jan 11 13:58:21 2009
@@ -70,6 +70,14 @@
             <groupId>commons-collections</groupId>
             <artifactId>commons-collections</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>
@@ -168,6 +176,113 @@
                     </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.portlet.jpa</id>
+                        <phase>process-classes</phase>
+                        <goals>
+                            <goal>enhance</goal>
+                        </goals>
+                        <configuration>
+                            <classes>${project.build.directory}/classes/org/apache/jetspeed/om/portlet/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.components.portletentity.jpa</id>
+                        <phase>process-classes</phase>
+                        <goals>
+                            <goal>enhance</goal>
+                        </goals>
+                        <configuration>
+                            <classes>${project.build.directory}/classes/org/apache/jetspeed/components/portletentity/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.components.portletpreferences.jpa</id>
+                        <phase>process-classes</phase>
+                        <goals>
+                            <goal>enhance</goal>
+                        </goals>
+                        <configuration>
+                            <classes>${project.build.directory}/classes/org/apache/jetspeed/components/portletpreferences/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.components.portletregistry.jpa</id>
+                        <phase>process-classes</phase>
+                        <goals>
+                            <goal>enhance</goal>
+                        </goals>
+                        <configuration>
+                            <classes>${project.build.directory}/classes/org/apache/jetspeed/components/portletregistry/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/Pluto APIs -->
+                    <dependency>
+                        <groupId>${pom.groupId}</groupId>
+                        <artifactId>jetspeed-api</artifactId>
+                        <version>${pom.version}</version>
+                    </dependency>
+                    <dependency>
+                        <groupId>org.apache.pluto</groupId>
+                        <artifactId>pluto-container-api</artifactId>
+                        <version>${org.apache.pluto.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>
         <testResources>
             <testResource>



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