You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by aw...@apache.org on 2006/09/09 02:39:30 UTC

svn commit: r441702 - in /incubator/openjpa/trunk/openjpa-persistence-jdbc/src/test: java/org/apache/openjpa/persistence/inheritance/ java/org/apache/openjpa/persistence/simple/ resources/META-INF/

Author: awhite
Date: Fri Sep  8 17:39:29 2006
New Revision: 441702

URL: http://svn.apache.org/viewvc?view=rev&rev=441702
Log:
Added test for deep mapped superclass inheritance hierarchy, which is what
my last metadata changes fixed.


Added:
    incubator/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/
    incubator/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/EntityL3.java
    incubator/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/MappedSuperclassBase.java
    incubator/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/MappedSuperclassL2.java
    incubator/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/TestMultipleMappedSuperclassHierarchy.java
Modified:
    incubator/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/simple/TestPersistence.java
    incubator/openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/META-INF/persistence.xml

Added: incubator/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/EntityL3.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/EntityL3.java?view=auto&rev=441702
==============================================================================
--- incubator/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/EntityL3.java (added)
+++ incubator/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/EntityL3.java Fri Sep  8 17:39:29 2006
@@ -0,0 +1,19 @@
+package org.apache.openjpa.persistence.inheritance;
+
+import javax.persistence.Entity;
+
+@Entity 
+public class EntityL3 
+    extends MappedSuperclassL2 {
+
+    private int l3data;
+
+    public int getL3Data() {
+        return l3data;
+    }
+
+    public void setL3Data(int data) {
+        l3data = data;
+    }
+}
+

Added: incubator/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/MappedSuperclassBase.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/MappedSuperclassBase.java?view=auto&rev=441702
==============================================================================
--- incubator/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/MappedSuperclassBase.java (added)
+++ incubator/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/MappedSuperclassBase.java Fri Sep  8 17:39:29 2006
@@ -0,0 +1,19 @@
+package org.apache.openjpa.persistence.inheritance;
+
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.MappedSuperclass;
+
+@MappedSuperclass
+public class MappedSuperclassBase {
+
+    @Id
+    @GeneratedValue(strategy=GenerationType.AUTO)
+    private long id;
+
+    public long getId() {
+        return id;
+    }
+}
+

Added: incubator/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/MappedSuperclassL2.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/MappedSuperclassL2.java?view=auto&rev=441702
==============================================================================
--- incubator/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/MappedSuperclassL2.java (added)
+++ incubator/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/MappedSuperclassL2.java Fri Sep  8 17:39:29 2006
@@ -0,0 +1,19 @@
+package org.apache.openjpa.persistence.inheritance;
+
+import javax.persistence.MappedSuperclass;
+
+@MappedSuperclass 
+public class MappedSuperclassL2 
+    extends MappedSuperclassBase {
+
+    private int l2data;
+
+    public int getL2Data() {
+        return l2data;
+    }
+
+    public void setL2Data(int data) {
+        l2data = data;
+    }
+}
+

Added: incubator/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/TestMultipleMappedSuperclassHierarchy.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/TestMultipleMappedSuperclassHierarchy.java?view=auto&rev=441702
==============================================================================
--- incubator/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/TestMultipleMappedSuperclassHierarchy.java (added)
+++ incubator/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/inheritance/TestMultipleMappedSuperclassHierarchy.java Fri Sep  8 17:39:29 2006
@@ -0,0 +1,88 @@
+/*
+ * 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.openjpa.persistence.inheritance;
+
+import java.util.HashMap;
+import java.util.Map;
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.EntityTransaction;
+import javax.persistence.Persistence;
+
+import junit.framework.TestCase;
+import junit.textui.TestRunner;
+import org.apache.openjpa.persistence.OpenJPAEntityManager;
+
+/**
+ * Perform basic operations on an inheritance hierarchy involving multiple
+ * @MappedSuperclasses.
+ *
+ * @author Abe White
+ */
+public class TestMultipleMappedSuperclassHierarchy
+    extends TestCase {
+
+    private EntityManagerFactory emf;
+
+    public void setUp() {
+        String types = MappedSuperclassBase.class.getName() + ";"
+            + MappedSuperclassL2.class.getName() + ";"
+            + EntityL3.class.getName();
+        Map props = new HashMap();
+        props.put("openjpa.MetaDataFactory", "jpa(Types=" + types + ")");
+        emf = Persistence.createEntityManagerFactory("test", props);
+    }
+
+    public void tearDown() {
+        if (emf == null)
+            return;
+        try {
+            EntityManager em = emf.createEntityManager();
+            em.getTransaction().begin();
+            em.createQuery("delete from EntityL3").executeUpdate();
+            em.getTransaction().commit();
+            em.close();
+            emf.close();
+        } catch (Exception e) {
+        }
+    }
+
+    public void testPersist() {
+        EntityL3 ent = new EntityL3();
+        ent.setL2Data(99); 
+        ent.setL3Data(100);
+
+        EntityManager em = emf.createEntityManager();
+        em.getTransaction().begin();
+        em.persist(ent);
+        em.getTransaction().commit();
+        long id = ent.getId();
+        assertTrue(id != 0);
+        em.close();
+
+        em = emf.createEntityManager();
+        ent = em.find(EntityL3.class, id);
+        assertNotNull(ent);
+        assertEquals(99, ent.getL2Data());
+        assertEquals(100, ent.getL3Data());
+        em.close();
+    }
+
+    public static void main(String[] args) {
+        TestRunner.run(TestMultipleMappedSuperclassHierarchy.class);
+    }
+}
+

Modified: incubator/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/simple/TestPersistence.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/simple/TestPersistence.java?view=diff&rev=441702&r1=441701&r2=441702
==============================================================================
--- incubator/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/simple/TestPersistence.java (original)
+++ incubator/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/simple/TestPersistence.java Fri Sep  8 17:39:29 2006
@@ -15,6 +15,8 @@
  */
 package org.apache.openjpa.persistence.simple;
 
+import java.util.HashMap;
+import java.util.Map;
 import javax.persistence.EntityManager;
 import javax.persistence.EntityManagerFactory;
 import javax.persistence.EntityTransaction;
@@ -34,23 +36,18 @@
 
     private EntityManagerFactory emf;
 
-    protected EntityManager getEM() {
-        if (emf == null)
-            emf = Persistence.createEntityManagerFactory("simple-emf-test");
-        assertNotNull(emf);
-
-        EntityManager em = emf.createEntityManager();
-        assertNotNull(em);
-
-        return em;
+    public void setUp() {
+        Map props = new HashMap();
+        props.put("openjpa.MetaDataFactory", 
+            "jpa(Types=" + AllFieldTypes.class.getName() + ")");
+        emf = Persistence.createEntityManagerFactory("test", props);
     }
 
-    public void tearDown()
-        throws Exception {
-        super.tearDown();
-
+    public void tearDown() {
+        if (emf == null)
+            return;
         try {
-            EntityManager em = getEM();
+            EntityManager em = emf.createEntityManager();
             em.getTransaction().begin();
             em.createQuery("delete from AllFieldTypes").executeUpdate();
             em.getTransaction().commit();
@@ -61,11 +58,10 @@
     }
 
     public void testCreateEntityManager() {
-        EntityManager em = getEM();
+        EntityManager em = emf.createEntityManager();
 
         EntityTransaction t = em.getTransaction();
         assertNotNull(t);
-
         t.begin();
         t.setRollbackOnly();
         t.rollback();
@@ -75,14 +71,11 @@
         OpenJPAEntityManager ojem = (OpenJPAEntityManager) em;
         ojem.getFetchPlan().setMaxFetchDepth(-1);
         assertEquals(-1, ojem.getFetchPlan().getMaxFetchDepth());
-
         em.close();
     }
 
     public void testPersist() {
-        EntityManager em;
-
-        em = getEM();
+        EntityManager em = emf.createEntityManager();
         em.getTransaction().begin();
         em.persist(new AllFieldTypes());
         em.getTransaction().commit();
@@ -90,9 +83,7 @@
     }
 
     public void testQuery() {
-        EntityManager em;
-
-        em = getEM();
+        EntityManager em = emf.createEntityManager();
         em.getTransaction().begin();
         AllFieldTypes aft = new AllFieldTypes();
         aft.setStringField("foo");
@@ -101,7 +92,7 @@
         em.getTransaction().commit();
         em.close();
 
-        em = getEM();
+        em = emf.createEntityManager();
         em.getTransaction().begin();
         assertEquals(1, em.createQuery
             ("select x from AllFieldTypes x where x.stringField = 'foo'").

Modified: incubator/openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/META-INF/persistence.xml
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/META-INF/persistence.xml?view=diff&rev=441702&r1=441701&r2=441702
==============================================================================
--- incubator/openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/META-INF/persistence.xml (original)
+++ incubator/openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/META-INF/persistence.xml Fri Sep  8 17:39:29 2006
@@ -1,24 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <persistence xmlns="http://java.sun.com/xml/ns/persistence"
-             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-             version="1.0">
-
-    <persistence-unit name="simple-emf-test">
-
-        <!-- This is not needed if OpenJPA is the only persistence provider
-             in the classpath.
-          <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
-          -->
-
-        <class>org.apache.openjpa.persistence.simple.AllFieldTypes</class>
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    version="1.0">
 
+    <persistence-unit name="test">
+        <!-- 
+        <provider>
+            org.apache.openjpa.persistence.PersistenceProviderImpl
+        </provider>
+        -->
         <properties>
             <property name="openjpa.ConnectionDriverName"
-                      value="org.apache.commons.dbcp.BasicDataSource"/>
+                value="org.apache.commons.dbcp.BasicDataSource"/>
             <property name="openjpa.ConnectionProperties"
-                      value="DriverClassName=org.apache.derby.jdbc.EmbeddedDriver,Url=jdbc:derby:target/database/openjpa-test-database;create=true,MaxActive=100,MaxWait=10000,TestOnBorrow=true"/>
+                value="DriverClassName=org.apache.derby.jdbc.EmbeddedDriver,Url=jdbc:derby:target/database/openjpa-test-database;create=true,MaxActive=100,MaxWait=10000,TestOnBorrow=true"/>
             <property name="openjpa.jdbc.SynchronizeMappings"
-                      value="buildSchema(ForeignKeys=true)"/>
+                value="buildSchema(ForeignKeys=true)"/>
         </properties>
     </persistence-unit>
 </persistence>