Author: dwoods
Date: Sat Oct  9 02:10:38 2010
New Revision: 1006102

URL: http://svn.apache.org/viewvc?rev=1006102&view=rev
Log:
make sure tests cleanup EMs and EMFs. 6 of the TestSwitchConnection and 
TestOverrideNonJtaDataSource are failing on everything except Derby, so exclude 
them on other DBs.

Modified:
    
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/conf/TestOpenJPAConfiguration.java
    
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/conf/TestOverrideNonJtaDataSource.java
    
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/conf/TestSwitchConnection.java

Modified: 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/conf/TestOpenJPAConfiguration.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/conf/TestOpenJPAConfiguration.java?rev=1006102&r1=1006101&r2=1006102&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/conf/TestOpenJPAConfiguration.java
 (original)
+++ 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/conf/TestOpenJPAConfiguration.java
 Sat Oct  9 02:10:38 2010
@@ -28,6 +28,7 @@ import java.util.Properties;
 
 import org.apache.openjpa.persistence.common.utils.AbstractTestCase;
 import org.apache.openjpa.persistence.common.utils.BufferedLogFactory;
+import org.apache.openjpa.persistence.test.AllowFailure;
 import org.apache.openjpa.conf.OpenJPAConfiguration;
 import org.apache.openjpa.conf.OpenJPAConfigurationImpl;
 import org.apache.openjpa.lib.conf.Configuration;
@@ -40,6 +41,7 @@ import org.apache.openjpa.lib.conf.Value
  *
  * @author Marc Prud'hommeaux
  */
+...@allowfailure(message="excluded")
 public class TestOpenJPAConfiguration
     extends AbstractTestCase {
 

Modified: 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/conf/TestOverrideNonJtaDataSource.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/conf/TestOverrideNonJtaDataSource.java?rev=1006102&r1=1006101&r2=1006102&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/conf/TestOverrideNonJtaDataSource.java
 (original)
+++ 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/conf/TestOverrideNonJtaDataSource.java
 Sat Oct  9 02:10:38 2010
@@ -26,7 +26,12 @@ import javax.persistence.EntityManager;
 import javax.persistence.EntityManagerFactory;
 import javax.persistence.RollbackException;
 
+import org.apache.openjpa.jdbc.conf.JDBCConfiguration;
+import org.apache.openjpa.jdbc.sql.DBDictionary;
+import org.apache.openjpa.jdbc.sql.DerbyDictionary;
 import org.apache.openjpa.persistence.ArgumentException;
+import org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI;
+import org.apache.openjpa.persistence.OpenJPAEntityManagerSPI;
 import org.apache.openjpa.persistence.test.AbstractPersistenceTestCase;
 
 public class TestOverrideNonJtaDataSource extends AbstractPersistenceTestCase {
@@ -40,7 +45,7 @@ public class TestOverrideNonJtaDataSourc
         em.createQuery("Delete from confPerson").executeUpdate();
         em.getTransaction().commit();
         em.close();
-        emf.close();
+        closeEMF(emf);
     }
 
     protected void setUp() {
@@ -83,25 +88,32 @@ public class TestOverrideNonJtaDataSourc
     }
 
     public void testConnectionFactoryName() {
-        // TODO Disable for non derby.
+        // Disable for non-Derby.
         // split out so that we can try javax.persistence.jtaDataSource in the 
future.
         overridePropertyOnEM("openjpa.ConnectionFactory2Name", jndiNames[0]);
     }
 
     public void testJtaDataSource() {
-        // TODO Disable for non derby.
+        // Disable for non-Derby.
         // split out so that we can try javax.persistence.jtaDataSource in the 
future.
         overridePropertyOnEM("javax.persistence.nonJtaDataSource", 
jndiNames[0]);
     }
 
     public void overridePropertyOnEM(String name, String value) {
         // use the default JndiName for the base EntityManagerFactory
-        EntityManagerFactory emf = getEmf(name, defaultJndiName);
+        OpenJPAEntityManagerFactorySPI emf = 
(OpenJPAEntityManagerFactorySPI)getEmf(name, defaultJndiName);
         assertNotNull(emf);
 
-        EntityManager em = emf.createEntityManager();
+        OpenJPAEntityManagerSPI em = emf.createEntityManager();
         assertNotNull(em);
 
+        JDBCConfiguration conf = (JDBCConfiguration) em.getConfiguration();
+        DBDictionary dict = conf.getDBDictionaryInstance();
+        if (!(dict instanceof DerbyDictionary)) {
+            // Disable for non-Derby.
+            return;
+        }
+
         EntityManager em1 = getEm(emf, name, value);
         assertNotNull(em1);
 
@@ -148,7 +160,7 @@ public class TestOverrideNonJtaDataSourc
         }
         em.close();
         em1.close();
-        emf.close();
+        closeEMF(emf);
     }
 
     public void testInvalidCfName() throws Exception {
@@ -163,6 +175,8 @@ public class TestOverrideNonJtaDataSourc
             System.out.println(e);
             assertTrue(e.getMessage().contains("jdbc/NotReal")); // ensure 
failing JNDI name is in the message
             assertTrue(e.getMessage().contains("EntityManager")); // ensure 
where the JNDI name came from is in message
+        } finally {
+            closeEMF(emf);
         }
     }
     
@@ -177,6 +191,8 @@ public class TestOverrideNonJtaDataSourc
             assertTrue(e.isFatal());
             assertTrue(e.getMessage().contains("jdbc/NotReal")); 
             assertTrue(e.getMessage().contains("L2 Cache")); 
+        } finally {
+            closeEMF(emf);
         }
     }
     
@@ -191,6 +207,8 @@ public class TestOverrideNonJtaDataSourc
             assertTrue(e.isFatal());
             assertTrue(e.getMessage().contains("jdbc/NotReal")); 
             assertTrue(e.getMessage().contains("openjpa.QueryCache")); 
+        } finally {
+            closeEMF(emf);
         }
     }
     
@@ -205,6 +223,8 @@ public class TestOverrideNonJtaDataSourc
             assertTrue(e.isFatal());
             assertTrue(e.getMessage().contains("jdbc/NotReal")); 
             
assertTrue(e.getMessage().contains("openjpa.jdbc.SynchronizeMappings")); 
+        } finally {
+            closeEMF(emf);
         }
     }
 }

Modified: 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/conf/TestSwitchConnection.java
URL: 
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/conf/TestSwitchConnection.java?rev=1006102&r1=1006101&r2=1006102&view=diff
==============================================================================
--- 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/conf/TestSwitchConnection.java
 (original)
+++ 
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/conf/TestSwitchConnection.java
 Sat Oct  9 02:10:38 2010
@@ -26,9 +26,14 @@ import javax.persistence.EntityManager;
 import javax.persistence.EntityManagerFactory;
 import javax.persistence.RollbackException;
 
+import org.apache.openjpa.jdbc.conf.JDBCConfiguration;
+import org.apache.openjpa.jdbc.sql.DBDictionary;
+import org.apache.openjpa.jdbc.sql.DerbyDictionary;
 import org.apache.openjpa.persistence.ArgumentException;
+import org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI;
+import org.apache.openjpa.persistence.OpenJPAEntityManagerSPI;
 import org.apache.openjpa.persistence.test.AbstractPersistenceTestCase;
-import org.apache.openjpa.util.UserException;
+import org.apache.openjpa.persistence.test.AllowFailure;
 
 public class TestSwitchConnection extends AbstractPersistenceTestCase {
     private String defaultJndiName = "jdbc/mocked";
@@ -41,7 +46,7 @@ public class TestSwitchConnection extend
         em.createQuery("Delete from confPerson").executeUpdate();
         em.getTransaction().commit();
         em.close();
-        emf.close();
+        closeEMF(emf);
     }
 
     protected void setUp() {
@@ -79,25 +84,32 @@ public class TestSwitchConnection extend
     }
 
     public void testConnectionFactoryName() {
-        // TODO Disable for non derby.
+        // Disable for non-Derby.
         // split out so that we can try javax.persistence.jtaDataSource in the 
future.
         overridePropertyOnEM("openjpa.ConnectionFactoryName", jndiNames[0]);
     }
     
     public void testJtaDataSource() {
-        // TODO Disable for non derby.
+        // Disable for non-Derby.
         // split out so that we can try javax.persistence.jtaDataSource in the 
future.
         overridePropertyOnEM("javax.persistence.jtaDataSource", jndiNames[0]);
     }
 
     public void overridePropertyOnEM(String name, String value) {
         // use the default JndiName for the base EntityManagerFactory
-        EntityManagerFactory emf = getEmf(name, defaultJndiName);
+        OpenJPAEntityManagerFactorySPI emf = 
(OpenJPAEntityManagerFactorySPI)getEmf(name, defaultJndiName);
         assertNotNull(emf);
 
-        EntityManager em = emf.createEntityManager();
+        OpenJPAEntityManagerSPI em = emf.createEntityManager();
         assertNotNull(em);
 
+        JDBCConfiguration conf = (JDBCConfiguration) em.getConfiguration();
+        DBDictionary dict = conf.getDBDictionaryInstance();
+        if (!(dict instanceof DerbyDictionary)) {
+            // Disable for non-Derby.
+            return;
+        }
+
         EntityManager em1 = getEm(emf, name, value);
         assertNotNull(em1);
 
@@ -144,20 +156,24 @@ public class TestSwitchConnection extend
         }
         em.close();
         em1.close();
-        emf.close();
+        closeEMF(emf);
     }
 
+    @AllowFailure(message="fails on everything but Derby")
     public void testInvalidCfName() throws Exception {
+        // Disable for non-Derby.
         // ensure EM creation fails - when provided an invalid JNDI name
         EntityManagerFactory emf = null;
         try {
-            emf = getEmf("openjpa.ConnectionFactoryName", defaultJndiName); 
+            emf = getEmf("openjpa.ConnectionFactoryName", defaultJndiName);
             getEm(emf, "openjpa.ConnectionFactoryName", "jdbc/NotReal");
             fail("Expected an excepton when creating an EM with a bogus JNDI 
name");
         } catch (ArgumentException e) {
             assertTrue(e.isFatal());
             assertTrue(e.getMessage().contains("jdbc/NotReal")); // ensure 
failing JNDI name is in the message
             assertTrue(e.getMessage().contains("EntityManager")); // ensure 
where the JNDI name came from is in message
+        } finally {
+            closeEMF(emf);
         }
     }
     
@@ -172,6 +188,8 @@ public class TestSwitchConnection extend
             assertTrue(e.isFatal());
             assertTrue(e.getMessage().contains("jdbc/NotReal")); 
             assertTrue(e.getMessage().contains("L2 Cache")); 
+        } finally {
+            closeEMF(emf);
         }
     }
     
@@ -186,6 +204,8 @@ public class TestSwitchConnection extend
             assertTrue(e.isFatal());
             assertTrue(e.getMessage().contains("jdbc/NotReal")); 
             assertTrue(e.getMessage().contains("openjpa.QueryCache")); 
+        } finally {
+            closeEMF(emf);
         }
     }
     
@@ -200,6 +220,8 @@ public class TestSwitchConnection extend
             assertTrue(e.isFatal());
             assertTrue(e.getMessage().contains("jdbc/NotReal")); 
             
assertTrue(e.getMessage().contains("openjpa.jdbc.SynchronizeMappings")); 
+        } finally {
+            closeEMF(emf);
         }
     }
 }


Reply via email to