You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2006/08/28 21:55:48 UTC

svn commit: r437806 - in /geronimo/sandbox/jee5-jta: geronimo-persistence-jpa10/ geronimo-persistence-jpa10/src/etc/ geronimo-persistence-jpa10/src/java/ geronimo-persistence-jpa10/src/main/ geronimo-persistence-jpa10/src/main/java/ geronimo-persistenc...

Author: djencks
Date: Mon Aug 28 12:55:45 2006
New Revision: 437806

URL: http://svn.apache.org/viewvc?rev=437806&view=rev
Log:
sync local changes.  Now have a gbean that ought to deploy a EMF and build the cm EMs

Added:
    geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/
      - copied from r437194, geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/
    geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/
    geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/
    geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/
    geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/
    geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/
    geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/
    geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/CMPEntityManagerExtended.java
      - copied, changed from r437194, geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/java/org/apache/geronimo/transaction/jpa/CMPEntityManagerExtended.java
    geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/CMPEntityManagerTxScoped.java
      - copied, changed from r437194, geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/java/org/apache/geronimo/transaction/jpa/CMPEntityManagerTxScoped.java
    geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/EntityManagerExtendedRegistry.java
      - copied, changed from r437194, geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/java/org/apache/geronimo/transaction/jpa/EntityManagerExtendedRegistry.java
    geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/EntityManagerWrapper.java
      - copied, changed from r437194, geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/java/org/apache/geronimo/transaction/jpa/EntityManagerWrapper.java
    geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/InternalCMPEntityManagerExtended.java
      - copied, changed from r437194, geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/java/org/apache/geronimo/transaction/jpa/InternalCMPEntityManagerExtended.java
    geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/PersistenceUnitGBean.java   (with props)
    geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/TransactionListener.java
      - copied, changed from r437194, geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/java/org/apache/geronimo/transaction/jpa/TransactionListener.java
    geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/test/java/
    geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/test/java/org/
    geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/test/java/org/apache/
    geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/test/java/org/apache/geronimo/
    geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/test/java/org/apache/geronimo/persistence/
    geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/test/java/org/apache/geronimo/persistence/CMPEntityManagerTest.java   (with props)
    geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/test/java/org/apache/geronimo/persistence/mockjpa/
    geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/test/java/org/apache/geronimo/persistence/mockjpa/MockEntityManager.java   (with props)
    geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/test/java/org/apache/geronimo/persistence/mockjpa/MockEntityManagerFactory.java   (with props)
    geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/main/
    geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/main/java/
      - copied from r437194, geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/java/
    geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/test/java/
    geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/test/java/org/
      - copied from r437194, geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/test/org/
Removed:
    geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/project.properties
    geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/project.xml
    geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/etc/
    geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/java/
    geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/etc/
    geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/java/
    geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/main/java/org/apache/geronimo/transaction/jpa/CMPEntityManagerExtended.java
    geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/main/java/org/apache/geronimo/transaction/jpa/CMPEntityManagerTxScoped.java
    geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/main/java/org/apache/geronimo/transaction/jpa/EntityManagerExtendedRegistry.java
    geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/main/java/org/apache/geronimo/transaction/jpa/EntityManagerWrapper.java
    geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/main/java/org/apache/geronimo/transaction/jpa/InternalCMPEntityManagerExtended.java
    geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/main/java/org/apache/geronimo/transaction/jpa/TransactionListener.java
    geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/test/java/org/apache/geronimo/transaction/jpa/
    geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/test/java/org/apache/geronimo/transaction/mockjpa/
    geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/test/org/
Modified:
    geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/pom.xml
    geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/pom.xml

Modified: geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/pom.xml?rev=437806&r1=437194&r2=437806&view=diff
==============================================================================
--- geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/pom.xml (original)
+++ geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/pom.xml Mon Aug 28 12:55:45 2006
@@ -29,7 +29,7 @@
         <!--<relativePath>../pom.xml</relativePath>-->
     </parent>
 
-    <artifactId>geronimo-transaction-jta11</artifactId>
+    <artifactId>geronimo-persistence-jpa10</artifactId>
     <name>Geronimo :: Transaction JTA 11</name>
 
     <!--
@@ -50,6 +50,37 @@
     <build>
         <plugins>
             <plugin>
+                <groupId>org.apache.geronimo.genesis.plugins</groupId>
+                <artifactId>tools-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>validate-java-version</id>
+                        <phase>validate</phase>
+                        <goals>
+                            <goal>require-java-version</goal>
+                        </goals>
+                        <configuration>
+                            <version>1.5*</version>
+                        </configuration>
+                    </execution>
+
+                    <!--
+                    NOTE: This will copy LICENSE.txt and NOTICE.txt to classes/META-INF.
+
+                          Its a itty-bitty HACK to avoid adding resource definitions to
+                          the build, which causes the Eclipse plugin to generate invalid
+                          .classpath files. :-(
+                    -->
+                    <execution>
+                        <id>install-legal-files</id>
+                        <phase>generate-resources</phase>
+                        <goals>
+                            <goal>copy-legal-files</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
                 <configuration>
@@ -68,59 +99,16 @@
             <artifactId>geronimo-system</artifactId>
             <version>${pom.version}</version>
         </dependency>
-
-        <!-- thread pool, for timer -->
         <dependency>
             <groupId>org.apache.geronimo.modules</groupId>
-            <artifactId>geronimo-core</artifactId>
+            <artifactId>geronimo-connector</artifactId>
             <version>${pom.version}</version>
         </dependency>
 
         <dependency>
             <groupId>org.apache.geronimo.modules</groupId>
-            <artifactId>geronimo-j2ee</artifactId>
+            <artifactId>geronimo-transaction-jta11</artifactId>
             <version>${pom.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.geronimo.modules</groupId>
-            <artifactId>geronimo-transaction</artifactId>
-            <version>${pom.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-jta_1.1_spec</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-jpa_3.0_spec</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <!--<dependency>-->
-        <!--<groupId>org.apache.geronimo.specs</groupId>-->
-        <!--<artifactId>geronimo-jta_1.0.1B_spec</artifactId>-->
-        <!--</dependency>-->
-
-        <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-ejb_2.1_spec</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.geronimo.specs</groupId>
-            <artifactId>geronimo-j2ee-connector_1.5_spec</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>backport-util-concurrent</groupId>
-            <artifactId>backport-util-concurrent</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.objectweb.howl</groupId>
-            <artifactId>howl</artifactId>
         </dependency>
 
     </dependencies>

Copied: geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/CMPEntityManagerExtended.java (from r437194, geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/java/org/apache/geronimo/transaction/jpa/CMPEntityManagerExtended.java)
URL: http://svn.apache.org/viewvc/geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/CMPEntityManagerExtended.java?p2=geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/CMPEntityManagerExtended.java&p1=geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/java/org/apache/geronimo/transaction/jpa/CMPEntityManagerExtended.java&r1=437194&r2=437806&rev=437806&view=diff
==============================================================================
--- geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/java/org/apache/geronimo/transaction/jpa/CMPEntityManagerExtended.java (original)
+++ geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/CMPEntityManagerExtended.java Mon Aug 28 12:55:45 2006
@@ -15,7 +15,7 @@
  *  limitations under the License.
  */
 
-package org.apache.geronimo.transaction.jpa;
+package org.apache.geronimo.persistence;
 
 import java.util.Map;
 

Copied: geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/CMPEntityManagerTxScoped.java (from r437194, geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/java/org/apache/geronimo/transaction/jpa/CMPEntityManagerTxScoped.java)
URL: http://svn.apache.org/viewvc/geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/CMPEntityManagerTxScoped.java?p2=geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/CMPEntityManagerTxScoped.java&p1=geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/java/org/apache/geronimo/transaction/jpa/CMPEntityManagerTxScoped.java&r1=437194&r2=437806&rev=437806&view=diff
==============================================================================
--- geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/java/org/apache/geronimo/transaction/jpa/CMPEntityManagerTxScoped.java (original)
+++ geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/CMPEntityManagerTxScoped.java Mon Aug 28 12:55:45 2006
@@ -15,7 +15,7 @@
  *  limitations under the License.
  */
 
-package org.apache.geronimo.transaction.jpa;
+package org.apache.geronimo.persistence;
 
 import java.util.Map;
 

Copied: geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/EntityManagerExtendedRegistry.java (from r437194, geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/java/org/apache/geronimo/transaction/jpa/EntityManagerExtendedRegistry.java)
URL: http://svn.apache.org/viewvc/geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/EntityManagerExtendedRegistry.java?p2=geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/EntityManagerExtendedRegistry.java&p1=geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/java/org/apache/geronimo/transaction/jpa/EntityManagerExtendedRegistry.java&r1=437194&r2=437806&rev=437806&view=diff
==============================================================================
--- geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/java/org/apache/geronimo/transaction/jpa/EntityManagerExtendedRegistry.java (original)
+++ geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/EntityManagerExtendedRegistry.java Mon Aug 28 12:55:45 2006
@@ -15,7 +15,7 @@
  *  limitations under the License.
  */
 
-package org.apache.geronimo.transaction.jpa;
+package org.apache.geronimo.persistence;
 
 import java.util.Map;
 import java.util.HashMap;

Copied: geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/EntityManagerWrapper.java (from r437194, geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/java/org/apache/geronimo/transaction/jpa/EntityManagerWrapper.java)
URL: http://svn.apache.org/viewvc/geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/EntityManagerWrapper.java?p2=geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/EntityManagerWrapper.java&p1=geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/java/org/apache/geronimo/transaction/jpa/EntityManagerWrapper.java&r1=437194&r2=437806&rev=437806&view=diff
==============================================================================
--- geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/java/org/apache/geronimo/transaction/jpa/EntityManagerWrapper.java (original)
+++ geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/EntityManagerWrapper.java Mon Aug 28 12:55:45 2006
@@ -15,7 +15,7 @@
  *  limitations under the License.
  */
 
-package org.apache.geronimo.transaction.jpa;
+package org.apache.geronimo.persistence;
 
 import javax.persistence.EntityManager;
 

Copied: geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/InternalCMPEntityManagerExtended.java (from r437194, geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/java/org/apache/geronimo/transaction/jpa/InternalCMPEntityManagerExtended.java)
URL: http://svn.apache.org/viewvc/geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/InternalCMPEntityManagerExtended.java?p2=geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/InternalCMPEntityManagerExtended.java&p1=geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/java/org/apache/geronimo/transaction/jpa/InternalCMPEntityManagerExtended.java&r1=437194&r2=437806&rev=437806&view=diff
==============================================================================
--- geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/java/org/apache/geronimo/transaction/jpa/InternalCMPEntityManagerExtended.java (original)
+++ geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/InternalCMPEntityManagerExtended.java Mon Aug 28 12:55:45 2006
@@ -15,7 +15,7 @@
  *  limitations under the License.
  */
 
-package org.apache.geronimo.transaction.jpa;
+package org.apache.geronimo.persistence;
 
 import java.util.concurrent.atomic.AtomicInteger;
 

Added: geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/PersistenceUnitGBean.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/PersistenceUnitGBean.java?rev=437806&view=auto
==============================================================================
--- geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/PersistenceUnitGBean.java (added)
+++ geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/PersistenceUnitGBean.java Mon Aug 28 12:55:45 2006
@@ -0,0 +1,293 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation
+ *
+ *  Licensed 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.geronimo.persistence;
+
+import java.util.List;
+import java.util.Properties;
+import java.util.Map;
+import java.util.ArrayList;
+import java.net.URL;
+
+import javax.persistence.spi.PersistenceUnitInfo;
+import javax.persistence.spi.PersistenceUnitTransactionType;
+import javax.persistence.spi.ClassTransformer;
+import javax.persistence.spi.PersistenceProvider;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.PersistenceException;
+import javax.persistence.EntityManager;
+import javax.sql.DataSource;
+
+import org.apache.geronimo.gbean.GBeanInfo;
+import org.apache.geronimo.gbean.GBeanInfoBuilder;
+import org.apache.geronimo.gbean.GBeanLifecycle;
+import org.apache.geronimo.transaction.manager.TransactionManagerImpl;
+import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
+import org.apache.geronimo.connector.outbound.ConnectionFactorySource;
+
+/**
+ * @version $Rev:$ $Date:$
+ */
+public class PersistenceUnitGBean implements PersistenceUnitInfo, GBeanLifecycle {
+
+    private final PersistenceUnitInfoImpl persistenceUnitInfo;
+    private final EntityManagerFactory entityManagerFactory;
+    private final TransactionManagerImpl transactionManager;
+
+    public PersistenceUnitGBean(String persistenceUnitName,
+            String persistenceProviderClassName,
+            PersistenceUnitTransactionType persistenceUnitTransactionType,
+            ConnectionFactorySource jtaDataSourceWrapper,
+            ConnectionFactorySource nonJtaDataSourceWrapper,
+            List mappingFileNamesUntyped,
+            List jarFileUrlsUntyped,
+            URL persistenceUnitRootUrl,
+            List managedClassNamesUntyped,
+            boolean excludeUnlistedClassesValue,
+            Properties properties,
+            TransactionManagerImpl transactionManager,
+            ClassLoader classLoader) {
+        List<String> mappingFileNames = new ArrayList<String>(mappingFileNamesUntyped);
+        List<URL> jarFileUrls = new ArrayList<URL>(jarFileUrlsUntyped);
+        List<String> managedClassNames = new ArrayList<String>(managedClassNamesUntyped);
+        persistenceUnitInfo = new PersistenceUnitInfoImpl(persistenceUnitName,
+                persistenceProviderClassName,
+                persistenceUnitTransactionType,
+                jtaDataSourceWrapper == null? null: (DataSource)jtaDataSourceWrapper.$getResource(),
+                nonJtaDataSourceWrapper == null? null: (DataSource)nonJtaDataSourceWrapper.$getResource(),
+                mappingFileNames,
+                jarFileUrls,
+                persistenceUnitRootUrl,
+                managedClassNames,
+                excludeUnlistedClassesValue,
+                properties,
+                classLoader);
+        try {
+            Class clazz = classLoader.loadClass(persistenceProviderClassName);
+            PersistenceProvider persistenceProvider = (PersistenceProvider) clazz.newInstance();
+            entityManagerFactory = persistenceProvider.createContainerEntityManagerFactory(persistenceUnitInfo, properties);
+        } catch (ClassNotFoundException e) {
+            throw new PersistenceException("Could not locate PersistenceProvider class: " + persistenceProviderClassName + " in classloader " + classLoader, e);
+        } catch (InstantiationException e) {
+            throw new PersistenceException("Could not create PersistenceProvider instance: " + persistenceProviderClassName + " loaded from classloader " + classLoader, e);
+        } catch (IllegalAccessException e) {
+            throw new PersistenceException("Could not create PersistenceProvider instance: " + persistenceProviderClassName + " loaded from classloader " + classLoader, e);
+        }
+        this.transactionManager = transactionManager;
+    }
+
+    public EntityManagerFactory getEntityManagerFactory() {
+        return entityManagerFactory;
+    }
+
+    public EntityManager getEntityManager(boolean transactionScoped, Map properties) {
+        if (transactionScoped) {
+            return new CMPEntityManagerTxScoped(transactionManager, getPersistenceUnitName(), entityManagerFactory, properties);
+        } else {
+            return new CMPEntityManagerExtended(transactionManager, getPersistenceUnitName(), entityManagerFactory, properties);
+        }
+    }
+
+    public String getPersistenceUnitName() {
+        return persistenceUnitInfo.getPersistenceUnitName();
+    }
+
+    public String getPersistenceProviderClassName() {
+        return persistenceUnitInfo.getPersistenceProviderClassName();
+    }
+
+    public PersistenceUnitTransactionType getTransactionType() {
+        return persistenceUnitInfo.getTransactionType();
+    }
+
+    public DataSource getJtaDataSource() {
+        return persistenceUnitInfo.getJtaDataSource();
+    }
+
+    public DataSource getNonJtaDataSource() {
+        return persistenceUnitInfo.getNonJtaDataSource();
+    }
+
+    public List<String> getMappingFileNames() {
+        return persistenceUnitInfo.getMappingFileNames();
+    }
+
+    public List<URL> getJarFileUrls() {
+        return persistenceUnitInfo.getJarFileUrls();
+    }
+
+    public URL getPersistenceUnitRootUrl() {
+        return persistenceUnitInfo.getPersistenceUnitRootUrl();
+    }
+
+    public List<String> getManagedClassNames() {
+        return persistenceUnitInfo.getManagedClassNames();
+    }
+
+    public boolean excludeUnlistedClasses() {
+        return persistenceUnitInfo.excludeUnlistedClasses();
+    }
+
+    public Properties getProperties() {
+        return persistenceUnitInfo.getProperties();
+    }
+
+    public ClassLoader getClassLoader() {
+        return persistenceUnitInfo.getClassLoader();
+    }
+
+    public void addTransformer(ClassTransformer classTransformer) {
+    }
+
+    public ClassLoader getNewTempClassLoader() {
+        return null;
+    }
+
+    public void doStart() throws Exception {
+    }
+
+    public void doStop() throws Exception {
+        entityManagerFactory.close();
+    }
+
+    public void doFail() {
+        entityManagerFactory.close();
+    }
+
+    private static class PersistenceUnitInfoImpl implements PersistenceUnitInfo {
+        private final String persistenceUnitName;
+        private final String persistenceProviderClassName;
+        private final PersistenceUnitTransactionType persistenceUnitTransactionType;
+        private final DataSource jtaDataSource;
+        private final DataSource nonJtaDataSource;
+        private final List<String> mappingFileNames;
+        private final List<URL> jarFileUrls;
+        private final URL persistenceUnitRootUrl;
+        private final List<String> managedClassNames;
+        private final boolean excludeUnlistedClassesValue;
+        private final Properties properties;
+        private final ClassLoader classLoader;
+
+
+        public PersistenceUnitInfoImpl(String persistenceUnitName, String persistenceProviderClassName, PersistenceUnitTransactionType persistenceUnitTransactionType, DataSource jtaDataSource, DataSource nonJtaDataSource, List<String> mappingFileNames, List<URL> jarFileUrls, URL persistenceUnitRootUrl, List<String> managedClassNames, boolean excludeUnlistedClassesValue, Properties properties, ClassLoader classLoader) {
+            this.persistenceUnitName = persistenceUnitName;
+            this.persistenceProviderClassName = persistenceProviderClassName;
+            this.persistenceUnitTransactionType = persistenceUnitTransactionType;
+            this.jtaDataSource = jtaDataSource;
+            this.nonJtaDataSource = nonJtaDataSource;
+            this.mappingFileNames = mappingFileNames;
+            this.jarFileUrls = jarFileUrls;
+            this.persistenceUnitRootUrl = persistenceUnitRootUrl;
+            this.managedClassNames = managedClassNames;
+            this.excludeUnlistedClassesValue = excludeUnlistedClassesValue;
+            this.properties = properties;
+            this.classLoader = classLoader;
+        }
+
+        public String getPersistenceUnitName() {
+            return persistenceUnitName;
+        }
+
+        public String getPersistenceProviderClassName() {
+            return persistenceProviderClassName;
+        }
+
+        public PersistenceUnitTransactionType getTransactionType() {
+            return persistenceUnitTransactionType;
+        }
+
+        public DataSource getJtaDataSource() {
+            return jtaDataSource;
+        }
+
+        public DataSource getNonJtaDataSource() {
+            return nonJtaDataSource;
+        }
+
+        public List<String> getMappingFileNames() {
+            return mappingFileNames;
+        }
+
+        public List<URL> getJarFileUrls() {
+            return jarFileUrls;
+        }
+
+        public URL getPersistenceUnitRootUrl() {
+            return persistenceUnitRootUrl;
+        }
+
+        public List<String> getManagedClassNames() {
+            return managedClassNames;
+        }
+
+        public boolean excludeUnlistedClasses() {
+            return excludeUnlistedClassesValue;
+        }
+
+        public Properties getProperties() {
+            return properties;
+        }
+
+        public ClassLoader getClassLoader() {
+            return classLoader;
+        }
+
+        public void addTransformer(ClassTransformer classTransformer) {
+        }
+
+        public ClassLoader getNewTempClassLoader() {
+            return null;
+        }
+
+    }
+
+    public static final GBeanInfo GBEAN_INFO;
+
+    static {
+        GBeanInfoBuilder infoBuilder = GBeanInfoBuilder.createStatic(PersistenceUnitGBean.class);
+
+        infoBuilder.addReference("TransactionManager", TransactionManagerImpl.class, NameFactory.TRANSACTION_MANAGER);
+        infoBuilder.addReference("JtaDataSourceWrapper", ConnectionFactorySource.class, NameFactory.JCA_MANAGED_CONNECTION_FACTORY);
+        infoBuilder.addReference("NonJtaDataSourceWrapper", ConnectionFactorySource.class, NameFactory.JCA_MANAGED_CONNECTION_FACTORY);
+        infoBuilder.addOperation("getEntityManagerFactory");
+        infoBuilder.addOperation("getEntityManager", new Class[] {boolean.class, Map.class});
+
+        infoBuilder.setConstructor(new String[] {
+                "persistenceUnitName",
+                "persistenceProviderClassName",
+                "persistenceUnitTransactionType",
+                "JtaDataSourceWrapper",
+                "NonJtaDataSourceWrapper",
+                "mappingFileNames",
+                "jarFileUrls",
+                "persistenceUnitRootUrl",
+                "managedClassNames",
+                "excludeUnlistedClassesValue",
+                "properties",
+                "TransactionManager",
+                "classLoader"
+        });
+
+        GBEAN_INFO = infoBuilder.getBeanInfo();
+
+    }
+
+    public static GBeanInfo getGBeanInfo() {
+        return GBEAN_INFO;
+    }
+
+}

Propchange: geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/PersistenceUnitGBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/PersistenceUnitGBean.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/PersistenceUnitGBean.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Copied: geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/TransactionListener.java (from r437194, geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/java/org/apache/geronimo/transaction/jpa/TransactionListener.java)
URL: http://svn.apache.org/viewvc/geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/TransactionListener.java?p2=geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/TransactionListener.java&p1=geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/java/org/apache/geronimo/transaction/jpa/TransactionListener.java&r1=437194&r2=437806&rev=437806&view=diff
==============================================================================
--- geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/src/java/org/apache/geronimo/transaction/jpa/TransactionListener.java (original)
+++ geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/main/java/org/apache/geronimo/persistence/TransactionListener.java Mon Aug 28 12:55:45 2006
@@ -15,7 +15,7 @@
  *  limitations under the License.
  */
 
-package org.apache.geronimo.transaction.jpa;
+package org.apache.geronimo.persistence;
 
 import javax.transaction.Transaction;
 

Added: geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/test/java/org/apache/geronimo/persistence/CMPEntityManagerTest.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/test/java/org/apache/geronimo/persistence/CMPEntityManagerTest.java?rev=437806&view=auto
==============================================================================
--- geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/test/java/org/apache/geronimo/persistence/CMPEntityManagerTest.java (added)
+++ geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/test/java/org/apache/geronimo/persistence/CMPEntityManagerTest.java Mon Aug 28 12:55:45 2006
@@ -0,0 +1,317 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation
+ *
+ *  Licensed 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.geronimo.persistence;
+
+import java.util.Map;
+import java.util.HashMap;
+
+import javax.persistence.EntityManager;
+import javax.persistence.TransactionRequiredException;
+import javax.ejb.EJBException;
+
+import junit.framework.TestCase;
+import org.apache.geronimo.transaction.jta11.GeronimoTransactionManagerJTA11;
+import org.apache.geronimo.persistence.mockjpa.MockEntityManagerFactory;
+import org.apache.geronimo.persistence.mockjpa.MockEntityManager;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class CMPEntityManagerTest extends TestCase {
+
+    private GeronimoTransactionManagerJTA11 tm;
+    private String persistenceUnit = "foo";
+    private MockEntityManagerFactory entityManagerFactory;
+
+    protected void setUp() throws Exception {
+        tm = new GeronimoTransactionManagerJTA11();
+        tm.addTransactionAssociationListener(new TransactionListener());
+        entityManagerFactory = new MockEntityManagerFactory();
+    }
+
+    /**
+     * section 3.1.1
+     * (not very clear).  getTransaction, joinTransaction throw IllegalStateException
+     */
+    public void testGetTransaction() throws Exception {
+        CMPEntityManagerTxScoped entityManager1 = new CMPEntityManagerTxScoped(tm, persistenceUnit, entityManagerFactory, null);
+        try {
+            entityManager1.getTransaction();
+            fail("Expected IllegalStateException");
+        } catch(IllegalStateException e) {
+            //expected
+        } catch (Exception e) {
+            fail("Wrong exception " + e);
+        }
+        tm.begin();
+        try {
+            entityManager1.getTransaction();
+            fail("Expected IllegalStateException");
+        } catch(IllegalStateException e) {
+            //expected
+        } catch (Exception e) {
+            fail("Wrong exception " + e);
+        }
+        tm.commit();
+    }
+
+    public void testJoinTransaction() throws Exception {
+        CMPEntityManagerTxScoped entityManager1 = new CMPEntityManagerTxScoped(tm, persistenceUnit, entityManagerFactory, null);
+        try {
+            entityManager1.joinTransaction();
+            fail("Expected IllegalStateException");
+        } catch(IllegalStateException e) {
+            //expected
+        } catch (Exception e) {
+            fail("Wrong exception " + e);
+        }
+        tm.begin();
+        try {
+            entityManager1.joinTransaction();
+            fail("Expected IllegalStateException");
+        } catch(IllegalStateException e) {
+            //expected
+        } catch (Exception e) {
+            fail("Wrong exception " + e);
+        }
+        tm.commit();
+    }
+
+    /**
+     * section 3.1.1 ????
+     * isOpen returns true
+     */
+    public void testIsOpen() throws Exception {
+        CMPEntityManagerTxScoped entityManager1 = new CMPEntityManagerTxScoped(tm, persistenceUnit, entityManagerFactory, null);
+        assertTrue(entityManager1.isOpen());
+        tm.begin();
+        assertTrue(entityManager1.isOpen());
+        tm.commit();
+        assertTrue(entityManager1.isOpen());
+        tm.begin();
+        assertTrue(entityManager1.isOpen());
+        tm.rollback();
+        assertTrue(entityManager1.isOpen());
+    }
+
+    /**
+     * section 5.6.2
+     * extended context is closed when the SFSB that caused it is removed
+     */
+    public void testExtendedClosedOnBeanRemove() throws Exception {
+        CMPEntityManagerExtended entityManager1 = new CMPEntityManagerExtended(tm, persistenceUnit, entityManagerFactory, null);
+        MockEntityManager pc1 = (MockEntityManager) entityManager1.find(EntityManager.class, "this");
+        assertTrue("base EntityManager should not be closed", !pc1.isClosed());
+        assertNotNull("InternalEntityManager should be registered", EntityManagerExtendedRegistry.getEntityManager(persistenceUnit));
+        entityManager1.beanRemoved();
+        assertTrue("base EntityManager should be closed", pc1.isClosed());
+        assertNull("InternalEntityManager should not be registered", EntityManagerExtendedRegistry.getEntityManager(persistenceUnit));
+    }
+
+    /**
+     * section 5.6.2.1
+     * extended context is closed when the SFSB that caused it and all others that share it are removed
+     */
+    public void testInheritedExtendedClosedOnBeanRemove() throws Exception {
+        CMPEntityManagerExtended entityManager1 = new CMPEntityManagerExtended(tm, persistenceUnit, entityManagerFactory, null);
+        MockEntityManager pc1 = (MockEntityManager) entityManager1.find(EntityManager.class, "this");
+        assertTrue("base EntityManager should not be closed", !pc1.isClosed());
+        InternalCMPEntityManagerExtended internalEntityManager1 = EntityManagerExtendedRegistry.getEntityManager(persistenceUnit);
+        assertNotNull("InternalEntityManager should be registered", internalEntityManager1);
+        CMPEntityManagerExtended entityManager2 = new CMPEntityManagerExtended(tm, persistenceUnit, entityManagerFactory, null);
+        InternalCMPEntityManagerExtended internalEntityManager2 = EntityManagerExtendedRegistry.getEntityManager(persistenceUnit);
+        //we should have got an exception if this isn't true
+        assertSame("2nd entity manager registering should use same internal entity manager", internalEntityManager1, internalEntityManager2);
+        MockEntityManager pc2 = (MockEntityManager) entityManager2.find(EntityManager.class, "this");
+        assertSame("2nd entity manager registering should use same mock entity manager", pc1, pc2);
+
+        //remove one bean, internal and mock entity managers should not change state
+        entityManager1.beanRemoved();
+        assertTrue("base EntityManager should not be closed", !pc1.isClosed());
+        assertNotNull("InternalEntityManager should be registered", EntityManagerExtendedRegistry.getEntityManager(persistenceUnit));
+
+        //close other bean, everything should close and unregister
+        entityManager2.beanRemoved();
+        assertTrue("base EntityManager should be closed", pc1.isClosed());
+        assertNull("InternalEntityManager should not be registered", EntityManagerExtendedRegistry.getEntityManager(persistenceUnit));
+    }
+
+    /**
+     * section 5.6.3.1
+     * Trying to propagate a JTA tx with a persistence context bound into a SFSB with Extended persistence context
+     * results in an EJBException
+     */
+    public void testNoSimultaneousEntityManagers() throws Exception {
+        //set up the extended persistence context:
+        CMPEntityManagerExtended entityManager1 = new CMPEntityManagerExtended(tm, persistenceUnit, entityManagerFactory, null);
+        //set up the caller
+        CMPEntityManagerTxScoped entityManager2 = new CMPEntityManagerTxScoped(tm, persistenceUnit, entityManagerFactory, null);
+        tm.begin();
+        //register the caller
+        MockEntityManager pc1 = (MockEntityManager) entityManager2.find(EntityManager.class, "this");
+        //caller calling SFSB means entityManager1 tries to join the trasaction:
+        InternalCMPEntityManagerExtended internalEntityManager = EntityManagerExtendedRegistry.getEntityManager(persistenceUnit);
+        try {
+            internalEntityManager.joinTransaction();
+            fail("Expected EJBException");
+        } catch (EJBException e) {
+            //expected
+        } catch (Exception e) {
+            fail("Unexpected exception " + e);
+        }
+        tm.commit();
+    }
+
+    /**
+     * section 5.8.2
+     * use the same persistence context for all work in a tx
+     */
+    public void testSamePersistenceContext() throws Exception {
+        tm.begin();
+        CMPEntityManagerTxScoped entityManager1 = new CMPEntityManagerTxScoped(tm, persistenceUnit, entityManagerFactory, null);
+        EntityManager pc1 = entityManager1.find(EntityManager.class, "this");
+        CMPEntityManagerTxScoped entityManager2 = new CMPEntityManagerTxScoped(tm, persistenceUnit, entityManagerFactory, null);
+        EntityManager pc2 = entityManager2.find(EntityManager.class, "this");
+        assertSame("Should get same entity manager for all work in a tx", pc1, pc2);
+        tm.commit();
+    }
+
+    /**
+     * section 5.9.1
+     * close or cleared is called when tx commits
+     */
+    public void testCloseOnCommit() throws Exception {
+        tm.begin();
+        CMPEntityManagerTxScoped entityManager1 = new CMPEntityManagerTxScoped(tm, persistenceUnit, entityManagerFactory, null);
+        MockEntityManager pc1 = (MockEntityManager) entityManager1.find(EntityManager.class, "this");
+        assertTrue("entityManager should not be closed or cleared", !pc1.isClosed() & !pc1.isCleared());
+        tm.commit();
+        assertTrue("entityManager should be closed or cleared", pc1.isClosed() || pc1.isCleared());
+        tm.begin();
+        CMPEntityManagerTxScoped entityManager2 = new CMPEntityManagerTxScoped(tm, persistenceUnit, entityManagerFactory, null);
+        MockEntityManager pc2 = (MockEntityManager) entityManager2.find(EntityManager.class, "this");
+        assertTrue("entityManager should not be closed or cleared", !pc2.isClosed() & !pc2.isCleared());
+        tm.rollback();
+        assertTrue("entityManager should be closed or cleared", pc2.isClosed() || pc2.isCleared());
+    }
+
+    /**
+     * section 5.9.1
+     * transaction required for persist, remove, merge, refresh
+     */
+    public void testTransactionRequired() throws Exception {
+        CMPEntityManagerTxScoped entityManager1 = new CMPEntityManagerTxScoped(tm, persistenceUnit, entityManagerFactory, null);
+        try {
+            entityManager1.persist("foo");
+            fail("expected TransactionRequiredException");
+        } catch (TransactionRequiredException e) {
+            //expected
+        } catch (Exception e) {
+            fail("Wrong exception" + e);
+        }
+        try {
+            entityManager1.remove("foo");
+            fail("expected TransactionRequiredException");
+        } catch (TransactionRequiredException e) {
+            //expected
+        } catch (Exception e) {
+            fail("Wrong exception" + e);
+        }
+        try {
+            entityManager1.merge("foo");
+            fail("expected TransactionRequiredException");
+        } catch (TransactionRequiredException e) {
+            //expected
+        } catch (Exception e) {
+            fail("Wrong exception" + e);
+        }
+        try {
+            entityManager1.refresh("foo");
+            fail("expected TransactionRequiredException");
+        } catch (TransactionRequiredException e) {
+            //expected
+        } catch (Exception e) {
+            fail("Wrong exception" + e);
+        }
+    }
+
+    /**
+     * section 5.9.1
+     * when a SFSB/extended context starts a UserTransaction or a CMT tx starts the EM must join the transaction
+     */
+    public void testExtendedEntityManagerJoinsNewTransactions() throws Exception {
+        CMPEntityManagerExtended entityManager1 = new CMPEntityManagerExtended(tm, persistenceUnit, entityManagerFactory, null);
+        tm.begin();
+        MockEntityManager pc1 = (MockEntityManager) entityManager1.find(EntityManager.class, "this");
+
+        assertTrue("EntityManager was supposed to join the tx", pc1.isJoined());
+    }
+
+    /**
+     * section 5.9.1
+     * application must not call close on its entityManager
+     */
+    public void testAppCallsCloseForbidden() throws Exception {
+        CMPEntityManagerTxScoped entityManager1 = new CMPEntityManagerTxScoped(tm, persistenceUnit, entityManagerFactory, null);
+        try {
+            entityManager1.close();
+            fail("Application should not be able to call close on its EntityManager");
+        } catch (IllegalStateException e) {
+            //expected
+        }
+        tm.begin();
+        try {
+            entityManager1.close();
+            fail("Application should not be able to call close on its EntityManager");
+        } catch (IllegalStateException e) {
+            //expected
+        }
+        tm.commit();
+    }
+
+
+    /**
+     * section 5.9.1
+     *
+     * @throws Exception
+     */
+    public void testNoPropertiesUsed() throws Exception {
+
+        CMPEntityManagerTxScoped entityManager = new CMPEntityManagerTxScoped(tm, persistenceUnit, entityManagerFactory, null);
+        tm.begin();
+        entityManager.contains("bar");
+        Map props = entityManager.find(Map.class, "properties");
+        assertSame("Props are not null", props, null);
+        tm.commit();
+    }
+
+    /**
+     * section 5.9.1
+     *
+     * @throws Exception
+     */
+    public void testPropertiesUsed() throws Exception {
+        Map properties = new HashMap();
+        CMPEntityManagerTxScoped entityManager = new CMPEntityManagerTxScoped(tm, persistenceUnit, entityManagerFactory, properties);
+        tm.begin();
+        entityManager.contains("bar");
+        Map props = entityManager.find(Map.class, "properties");
+        assertSame("Props are not what was passed in", props, properties);
+        tm.commit();
+    }
+}

Propchange: geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/test/java/org/apache/geronimo/persistence/CMPEntityManagerTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/test/java/org/apache/geronimo/persistence/CMPEntityManagerTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/test/java/org/apache/geronimo/persistence/CMPEntityManagerTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/test/java/org/apache/geronimo/persistence/mockjpa/MockEntityManager.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/test/java/org/apache/geronimo/persistence/mockjpa/MockEntityManager.java?rev=437806&view=auto
==============================================================================
--- geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/test/java/org/apache/geronimo/persistence/mockjpa/MockEntityManager.java (added)
+++ geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/test/java/org/apache/geronimo/persistence/mockjpa/MockEntityManager.java Mon Aug 28 12:55:45 2006
@@ -0,0 +1,149 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation
+ *
+ *  Licensed 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.geronimo.persistence.mockjpa;
+
+import java.util.Map;
+
+import javax.persistence.EntityManager;
+import javax.persistence.FlushModeType;
+import javax.persistence.LockModeType;
+import javax.persistence.Query;
+import javax.persistence.EntityTransaction;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class MockEntityManager implements EntityManager {
+
+    private final Map properties;
+    private boolean closed = false;
+    private boolean cleared = false;
+    private boolean joined = false;
+
+    public MockEntityManager() {
+        properties = null;
+    }
+
+    public MockEntityManager(Map properties) {
+        this.properties = properties;
+    }
+
+    public void persist(Object object) {
+    }
+
+    public <T> T merge(T t) {
+        return null;
+    }
+
+    public void remove(Object object) {
+    }
+
+    public <T> T find(Class<T> aClass, Object object) {
+        if (aClass == Map.class && "properties".equals(object)) {
+            return (T)properties;
+        }
+        if (aClass == EntityManager.class && "this".equals(object)) {
+            return (T)this;
+        }
+        return null;
+   }
+
+    public <T> T getReference(Class<T> aClass, Object object) {
+        return null;
+    }
+
+    public void flush() {
+    }
+
+    public void setFlushMode(FlushModeType flushModeType) {
+    }
+
+    public FlushModeType getFlushMode() {
+        return null;
+    }
+
+    public void lock(Object object, LockModeType lockModeType) {
+    }
+
+    public void refresh(Object object) {
+    }
+
+    public void clear() {
+        cleared = true;
+    }
+
+    public boolean contains(Object object) {
+        return false;
+    }
+
+    public Query createQuery(String string) {
+        return null;
+    }
+
+    public Query createNamedQuery(String string) {
+        return null;
+    }
+
+    public Query createNativeQuery(String string) {
+        return null;
+    }
+
+    public Query createNativeQuery(String string, Class aClass) {
+        return null;
+    }
+
+    public Query createNativeQuery(String string, String string1) {
+        return null;
+    }
+
+    public void close() {
+        closed = true;
+    }
+
+    public boolean isOpen() {
+        return !closed;
+    }
+
+    public EntityTransaction getTransaction() {
+        return null;
+    }
+
+    public void joinTransaction() {
+        joined = true;
+    }
+
+    public Object getDelegate() {
+        return null;
+    }
+
+    public Map getProperties() {
+        return properties;
+    }
+
+    public boolean isClosed() {
+        return closed;
+    }
+
+    public boolean isCleared() {
+        return cleared;
+    }
+
+    public boolean isJoined() {
+        return joined;
+    }
+}

Propchange: geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/test/java/org/apache/geronimo/persistence/mockjpa/MockEntityManager.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/test/java/org/apache/geronimo/persistence/mockjpa/MockEntityManager.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/test/java/org/apache/geronimo/persistence/mockjpa/MockEntityManager.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/test/java/org/apache/geronimo/persistence/mockjpa/MockEntityManagerFactory.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/test/java/org/apache/geronimo/persistence/mockjpa/MockEntityManagerFactory.java?rev=437806&view=auto
==============================================================================
--- geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/test/java/org/apache/geronimo/persistence/mockjpa/MockEntityManagerFactory.java (added)
+++ geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/test/java/org/apache/geronimo/persistence/mockjpa/MockEntityManagerFactory.java Mon Aug 28 12:55:45 2006
@@ -0,0 +1,53 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation
+ *
+ *  Licensed 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.geronimo.persistence.mockjpa;
+
+import java.util.Map;
+
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.EntityManager;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class MockEntityManagerFactory implements EntityManagerFactory {
+
+    private boolean open = true;
+
+    public EntityManager createEntityManager() {
+        if (!open) {
+            throw new IllegalStateException("closed");
+        }
+        return new MockEntityManager();
+    }
+
+    public EntityManager createEntityManager(Map map) {
+        if (!open) {
+            throw new IllegalStateException("closed");
+        }
+        return new MockEntityManager(map);
+    }
+
+    public void close() {
+        open = false;
+    }
+
+    public boolean isOpen() {
+        return open;
+    }
+}

Propchange: geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/test/java/org/apache/geronimo/persistence/mockjpa/MockEntityManagerFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/test/java/org/apache/geronimo/persistence/mockjpa/MockEntityManagerFactory.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/jee5-jta/geronimo-persistence-jpa10/src/test/java/org/apache/geronimo/persistence/mockjpa/MockEntityManagerFactory.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/pom.xml?rev=437806&r1=437805&r2=437806&view=diff
==============================================================================
--- geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/pom.xml (original)
+++ geronimo/sandbox/jee5-jta/geronimo-transaction-jta11/pom.xml Mon Aug 28 12:55:45 2006
@@ -50,6 +50,37 @@
     <build>
         <plugins>
             <plugin>
+                <groupId>org.apache.geronimo.genesis.plugins</groupId>
+                <artifactId>tools-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>validate-java-version</id>
+                        <phase>validate</phase>
+                        <goals>
+                            <goal>require-java-version</goal>
+                        </goals>
+                        <configuration>
+                            <version>1.5*</version>
+                        </configuration>
+                    </execution>
+
+                    <!--
+                    NOTE: This will copy LICENSE.txt and NOTICE.txt to classes/META-INF.
+
+                          Its a itty-bitty HACK to avoid adding resource definitions to
+                          the build, which causes the Eclipse plugin to generate invalid
+                          .classpath files. :-(
+                    -->
+                    <execution>
+                        <id>install-legal-files</id>
+                        <phase>generate-resources</phase>
+                        <goals>
+                            <goal>copy-legal-files</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
                 <configuration>