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>