You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by dw...@apache.org on 2010/02/27 00:16:14 UTC

svn commit: r916855 - in /openjpa/trunk/openjpa-persistence-jdbc/src/test: java/org/apache/openjpa/persistence/jpql/entities/ java/org/apache/openjpa/persistence/jpql/expressions/ java/org/apache/openjpa/persistence/test/ resources/META-INF/ resources/...

Author: dwoods
Date: Fri Feb 26 23:16:13 2010
New Revision: 916855

URL: http://svn.apache.org/viewvc?rev=916855&view=rev
Log:
OPENJPA-855 Add additional O2M and Element collection tests for annotated and XML mapped entities

Added:
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/IOrderedElements.java   (with props)
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/JPAEntityClassEnum.java   (with props)
    openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jpql/expressions/orm.xml
Modified:
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/IOrderedEntity.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/OrderedElementEntity.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/OrderedManyToManyEntity.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/OrderedOneToManyEntity.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/XMLOrderedElementEntity.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/XMLOrderedManyToManyEntity.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/XMLOrderedOneToManyEntity.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/expressions/TestIndex.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/AbstractPersistenceTestCase.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/META-INF/persistence.xml
    openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jpql/expressions/persistence.xml

Added: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/IOrderedElements.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/IOrderedElements.java?rev=916855&view=auto
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/IOrderedElements.java (added)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/IOrderedElements.java Fri Feb 26 23:16:13 2010
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openjpa.persistence.jpql.entities;
+
+import java.util.List;
+
+
+public interface IOrderedElements {
+
+    public int getId();
+
+    public void setId(int id);
+
+    public List<String> getListElements();
+
+    public void setListElements(List<String> elements);
+
+    public void addListElements(String element);
+    
+    public String removeListElements(int location);
+    
+    public void insertListElements(int location, String name);
+
+    public String toString();
+}

Propchange: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/IOrderedElements.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/IOrderedEntity.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/IOrderedEntity.java?rev=916855&r1=916854&r2=916855&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/IOrderedEntity.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/IOrderedEntity.java Fri Feb 26 23:16:13 2010
@@ -30,11 +30,11 @@
 
     public void setEntities(List<INameEntity> entities);
 
-    public void addEntities(INameEntity entity);
-    
-    public INameEntity removeEntities(int location);
+    public void addEntity(INameEntity newElement);
+
+    public INameEntity removeEntity(int location);
     
-    public void insertEntities(int location, INameEntity entity);
+    public void insertEntity(int location, INameEntity entity);
 
     public String toString();
 }

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/OrderedElementEntity.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/OrderedElementEntity.java?rev=916855&r1=916854&r2=916855&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/OrderedElementEntity.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/OrderedElementEntity.java Fri Feb 26 23:16:13 2010
@@ -27,14 +27,14 @@
 import javax.persistence.OrderColumn;
 
 @Entity
-public class OrderedElementEntity implements java.io.Serializable {
+public class OrderedElementEntity implements IOrderedElements, java.io.Serializable {
 
     @Id
     private int id;
 
     @ElementCollection
     @OrderColumn
-    private List<String> listElements;  
+    private List<String> elements;  
     
     public int getId() {
         return id;
@@ -45,36 +45,36 @@
     }
 
     public List<String> getListElements() {
-        return listElements;
+        return elements;
     }
 
     public void setListElements(List<String> elements) {
-        this.listElements = elements;
+        this.elements = elements;
     }
 
     public void addListElements(String element) {
-        if( listElements == null) {
-            listElements = new ArrayList<String>();
+        if( elements == null) {
+            elements = new ArrayList<String>();
         }
-        listElements.add(element);
+        elements.add(element);
     }
     
     public String removeListElements(int location) {
         String rtnVal = null;
-        if( listElements != null) {
-            rtnVal = listElements.remove(location);
+        if( elements != null) {
+            rtnVal = elements.remove(location);
         }
         return rtnVal;
     }
     
     public void insertListElements(int location, String name) {
-        if( listElements == null) {
-            listElements = new ArrayList<String>();
+        if( elements == null) {
+            elements = new ArrayList<String>();
         }
-        listElements.add(location, name);
+        elements.add(location, name);
     }
 
     public String toString() {
-        return "OrderedElementEntity[" + id + "]=" + listElements;
+        return "OrderedElementEntity[" + id + "]=" + elements;
     }
 }

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/OrderedManyToManyEntity.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/OrderedManyToManyEntity.java?rev=916855&r1=916854&r2=916855&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/OrderedManyToManyEntity.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/OrderedManyToManyEntity.java Fri Feb 26 23:16:13 2010
@@ -34,7 +34,7 @@
 
     @ManyToMany
     @OrderColumn
-    private List<INameEntity> om2mEntities;
+    private List<INameEntity> entities;
 
     
     public int getId() {
@@ -46,36 +46,36 @@
     }
 
     public List<INameEntity> getEntities() {
-        return om2mEntities;
+        return entities;
     }
 
     public void setEntities(List<INameEntity> entities) {
-        this.om2mEntities = entities;
+        this.entities = entities;
     }
 
-    public void addEntities(INameEntity entity) {
-        if( om2mEntities == null) {
-            om2mEntities = new ArrayList<INameEntity>();
+    public void addEntity(INameEntity entity) {
+        if( entities == null) {
+            entities = new ArrayList<INameEntity>();
         }
-        om2mEntities.add(entity);
+        entities.add(entity);
     }
-    
-    public INameEntity removeEntities(int location) {
+        
+    public INameEntity removeEntity(int location) {
         INameEntity rtnVal = null;
-        if( om2mEntities != null) {
-            rtnVal = om2mEntities.remove(location);
+        if( entities != null) {
+            rtnVal = entities.remove(location);
         }
         return rtnVal;
     }
     
-    public void insertEntities(int location, INameEntity entity) {
-        if( om2mEntities == null) {
-            om2mEntities = new ArrayList<INameEntity>();
+    public void insertEntity(int location, INameEntity entity) {
+        if( entities == null) {
+            entities = new ArrayList<INameEntity>();
         }
-        om2mEntities.add(location, entity);
+        entities.add(location, entity);
     }
 
     public String toString() {
-        return "OrderedManyToManyEntity[" + id + "]=" + om2mEntities;
+        return "OrderedManyToManyEntity[" + id + "]=" + entities;
     }
 }

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/OrderedOneToManyEntity.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/OrderedOneToManyEntity.java?rev=916855&r1=916854&r2=916855&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/OrderedOneToManyEntity.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/OrderedOneToManyEntity.java Fri Feb 26 23:16:13 2010
@@ -34,7 +34,7 @@
 
     @OneToMany
     @OrderColumn
-    private List<INameEntity> oo2mEntities;
+    private List<INameEntity> entities;
 
     
     public int getId() {
@@ -46,36 +46,36 @@
     }
 
     public List<INameEntity> getEntities() {
-        return oo2mEntities;
+        return entities;
     }
 
     public void setEntities(List<INameEntity> names) {
-        this.oo2mEntities = names;
+        this.entities = names;
     }
 
-    public void addEntities(INameEntity name) {
-        if( oo2mEntities == null) {
-            oo2mEntities = new ArrayList<INameEntity>();
+    public void addEntity(INameEntity name) {
+        if( entities == null) {
+            entities = new ArrayList<INameEntity>();
         }
-        oo2mEntities.add(name);
+        entities.add(name);
     }
-    
-    public INameEntity removeEntities(int location) {
+        
+    public INameEntity removeEntity(int location) {
         INameEntity rtnVal = null;
-        if( oo2mEntities != null) {
-            rtnVal = oo2mEntities.remove(location);
+        if( entities != null) {
+            rtnVal = entities.remove(location);
         }
         return rtnVal;
     }
     
-    public void insertEntities(int location, INameEntity name) {
-        if( oo2mEntities == null) {
-            oo2mEntities = new ArrayList<INameEntity>();
+    public void insertEntity(int location, INameEntity name) {
+        if( entities == null) {
+            entities = new ArrayList<INameEntity>();
         }
-        oo2mEntities.add(location, name);
+        entities.add(location, name);
     }
 
     public String toString() {
-        return "OrderedOneToManyEntity[" + id + "]=" + oo2mEntities;
+        return "OrderedOneToManyEntity[" + id + "]=" + entities;
     }
 }

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/XMLOrderedElementEntity.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/XMLOrderedElementEntity.java?rev=916855&r1=916854&r2=916855&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/XMLOrderedElementEntity.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/XMLOrderedElementEntity.java Fri Feb 26 23:16:13 2010
@@ -21,11 +21,11 @@
 import java.util.ArrayList;
 import java.util.List;
 
-public class XMLOrderedElementEntity implements java.io.Serializable {
+public class XMLOrderedElementEntity implements IOrderedElements, java.io.Serializable {
 
     private int id;
 
-    private List<String> listElements;  
+    private List<String> elements;  
     
     public int getId() {
         return id;
@@ -36,36 +36,36 @@
     }
 
     public List<String> getListElements() {
-        return listElements;
+        return elements;
     }
 
     public void setListElements(List<String> elements) {
-        this.listElements = elements;
+        this.elements = elements;
     }
 
     public void addListElements(String element) {
-        if( listElements == null) {
-            listElements = new ArrayList<String>();
+        if( elements == null) {
+            elements = new ArrayList<String>();
         }
-        listElements.add(element);
+        elements.add(element);
     }
     
     public String removeListElements(int location) {
         String rtnVal = null;
-        if( listElements != null) {
-            rtnVal = listElements.remove(location);
+        if( elements != null) {
+            rtnVal = elements.remove(location);
         }
         return rtnVal;
     }
     
     public void insertListElements(int location, String name) {
-        if( listElements == null) {
-            listElements = new ArrayList<String>();
+        if( elements == null) {
+            elements = new ArrayList<String>();
         }
-        listElements.add(location, name);
+        elements.add(location, name);
     }
 
     public String toString() {
-        return "XMLOrderedElementEntity[" + id + "]=" + listElements;
+        return "XMLOrderedElementEntity[" + id + "]=" + elements;
     }
 }

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/XMLOrderedManyToManyEntity.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/XMLOrderedManyToManyEntity.java?rev=916855&r1=916854&r2=916855&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/XMLOrderedManyToManyEntity.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/XMLOrderedManyToManyEntity.java Fri Feb 26 23:16:13 2010
@@ -25,7 +25,7 @@
 
     private int id;
 
-    private List<INameEntity> xom2mEntities;
+    private List<INameEntity> entities;
 
     
     public int getId() {
@@ -37,36 +37,36 @@
     }
 
     public List<INameEntity> getEntities() {
-        return xom2mEntities;
+        return entities;
     }
 
     public void setEntities(List<INameEntity> entities) {
-        this.xom2mEntities = entities;
+        this.entities = entities;
     }
 
-    public void addEntities(INameEntity entity) {
-        if( xom2mEntities == null) {
-            xom2mEntities = new ArrayList<INameEntity>();
+    public void addEntity(INameEntity entity) {
+        if( entities == null) {
+            entities = new ArrayList<INameEntity>();
         }
-        xom2mEntities.add(entity);
+        entities.add(entity);
     }
     
-    public INameEntity removeEntities(int location) {
+    public INameEntity removeEntity(int location) {
         INameEntity rtnVal = null;
-        if( xom2mEntities != null) {
-            rtnVal = xom2mEntities.remove(location);
+        if( entities != null) {
+            rtnVal = entities.remove(location);
         }
         return rtnVal;
     }
     
-    public void insertEntities(int location, INameEntity entity) {
-        if( xom2mEntities == null) {
-            xom2mEntities = new ArrayList<INameEntity>();
+    public void insertEntity(int location, INameEntity entity) {
+        if( entities == null) {
+            entities = new ArrayList<INameEntity>();
         }
-        xom2mEntities.add(location, entity);
+        entities.add(location, entity);
     }
 
     public String toString() {
-        return "XMLOrderedManyToManyEntity[" + id + "]=" + xom2mEntities;
+        return "XMLOrderedManyToManyEntity[" + id + "]=" + entities;
     }
 }

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/XMLOrderedOneToManyEntity.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/XMLOrderedOneToManyEntity.java?rev=916855&r1=916854&r2=916855&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/XMLOrderedOneToManyEntity.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/entities/XMLOrderedOneToManyEntity.java Fri Feb 26 23:16:13 2010
@@ -25,7 +25,7 @@
 
     private int id;
 
-    private List<INameEntity> xoo2mEntities;
+    private List<INameEntity> entities;
 
     
     public int getId() {
@@ -37,36 +37,36 @@
     }
 
     public List<INameEntity> getEntities() {
-        return xoo2mEntities;
+        return entities;
     }
 
     public void setEntities(List<INameEntity> entities) {
-        this.xoo2mEntities = entities;
+        this.entities = entities;
     }
 
-    public void addEntities(INameEntity entity) {
-        if( xoo2mEntities == null) {
-            xoo2mEntities = new ArrayList<INameEntity>();
+    public void addEntity(INameEntity entity) {
+        if( entities == null) {
+            entities = new ArrayList<INameEntity>();
         }
-        xoo2mEntities.add(entity);
+        entities.add(entity);
     }
     
-    public INameEntity removeEntities(int location) {
+    public INameEntity removeEntity(int location) {
         INameEntity rtnVal = null;
-        if( xoo2mEntities != null) {
-            rtnVal = xoo2mEntities.remove(location);
+        if( entities != null) {
+            rtnVal = entities.remove(location);
         }
         return rtnVal;
     }
     
-    public void insertEntities(int location, INameEntity entity) {
-        if( xoo2mEntities == null) {
-            xoo2mEntities = new ArrayList<INameEntity>();
+    public void insertEntity(int location, INameEntity entity) {
+        if( entities == null) {
+            entities = new ArrayList<INameEntity>();
         }
-        xoo2mEntities.add(location, entity);
+        entities.add(location, entity);
     }
 
     public String toString() {
-        return "XMLOrderedOneToManyEntity[" + id + "]=" + xoo2mEntities;
+        return "XMLOrderedOneToManyEntity[" + id + "]=" + entities;
     }
 }

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/expressions/TestIndex.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/expressions/TestIndex.java?rev=916855&r1=916854&r2=916855&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/expressions/TestIndex.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jpql/expressions/TestIndex.java Fri Feb 26 23:16:13 2010
@@ -18,25 +18,99 @@
  */
 package org.apache.openjpa.persistence.jpql.expressions;
 
+import java.lang.reflect.Constructor;
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 import javax.persistence.EntityManager;
+import javax.persistence.Query;
 
+import org.apache.openjpa.lib.log.Log;
+import org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI;
+import org.apache.openjpa.persistence.OpenJPAPersistence;
+import org.apache.openjpa.persistence.jpql.entities.INameEntity;
+import org.apache.openjpa.persistence.jpql.entities.IOrderedElements;
+import org.apache.openjpa.persistence.jpql.entities.IOrderedEntity;
+import org.apache.openjpa.persistence.jpql.entities.OrderedElementEntity;
+import org.apache.openjpa.persistence.jpql.entities.OrderedManyToManyEntity;
+import org.apache.openjpa.persistence.jpql.entities.OrderedOneToManyEntity;
+import org.apache.openjpa.persistence.jpql.entities.UnorderedNameEntity;
+import org.apache.openjpa.persistence.jpql.entities.XMLOrderedElementEntity;
+import org.apache.openjpa.persistence.jpql.entities.XMLOrderedManyToManyEntity;
+import org.apache.openjpa.persistence.jpql.entities.XMLOrderedOneToManyEntity;
+import org.apache.openjpa.persistence.jpql.entities.XMLUnorderedNameEntity;
 import org.apache.openjpa.persistence.proxy.TreeNode;
+import org.apache.openjpa.persistence.test.JPAEntityClassEnum;
 import org.apache.openjpa.persistence.test.SingleEMFTestCase;
 
 /**
- * Tests index function
+ * Test JPQL Index function on O2M, M2M and Element collections using annotations and XML.
  *  
- * @author Catalina Wei
+ * @author Catalina Wei, Albert Lee, Donald Woods
  */
 public class TestIndex extends SingleEMFTestCase {
+    
+    private OpenJPAEntityManagerFactorySPI emf2 = null;
+    private Log log = null;
+    
+    private enum JPQLIndexEntityClasses implements JPAEntityClassEnum {
+        OrderedElementEntity(OrderedElementEntity.class),
+        OrderedOneToManyEntity(OrderedOneToManyEntity.class),
+        OrderedManyToManyEntity(OrderedManyToManyEntity.class),
+        XMLOrderedElementEntity(XMLOrderedElementEntity.class),
+        XMLOrderedOneToManyEntity(XMLOrderedOneToManyEntity.class),
+        XMLOrderedManyToManyEntity(XMLOrderedManyToManyEntity.class),
+        UnorderedNameEntity(UnorderedNameEntity.class),
+        XMLUnorderedNameEntity(XMLUnorderedNameEntity.class);
+
+        private Class<?> clazz;
+        private String fullEntityName;
+        private String entityName;
+
+        JPQLIndexEntityClasses(Class<?> clazz) {
+            this.clazz = clazz;
+            fullEntityName = clazz.getName();
+            entityName = fullEntityName.substring(getEntityClassName()
+                .lastIndexOf('.') + 1);
+        }
+
+        public Class<?> getEntityClass() {
+            return clazz;
+        }
+
+        public String getEntityClassName() {
+            return fullEntityName;
+        }
+
+        public String getEntityName() {
+            return entityName;
+        }
+    }
+
+    private static final String[] Element_Names = { "A_Element", "B_Element",
+        "C_Element", "D_Element", "E_Element", "F_Element", };
+
+    @Override
     public void setUp() {
-        super.setUp(CLEAR_TABLES, TreeNode.class);
+        super.setUp(CLEAR_TABLES, TreeNode.class, 
+            OrderedElementEntity.class, UnorderedNameEntity.class,
+            OrderedOneToManyEntity.class, OrderedManyToManyEntity.class);
+            // XMLOrderedOneToManyEntity.class, XMLOrderedManyToManyEntity.class,
+            // XMLOrderedElementEntity.class, XMLUnorderedNameEntity.class);
+
+        // create our EMF
+        emf2 = (OpenJPAEntityManagerFactorySPI) OpenJPAPersistence.createEntityManagerFactory(
+                "JPQLIndex",
+                "org/apache/openjpa/persistence/jpql/expressions/persistence.xml");
+        assertNotNull(emf2);
+
+        log =  emf2.getConfiguration().getLog("test");
     }
-    
-    public void testQueryIndex() {
-        persistTree();
+        
+    public void testO2MTreeQueryIndex() {
+        int[] fanOuts = {2,3,4};
+        createTreeNodeEntities(fanOuts);
         EntityManager em = emf.createEntityManager();
         String query = "SELECT index(c) from TreeNode t, in (t.childern) c" +
             " WHERE index(c) = 2"; 
@@ -48,28 +122,45 @@
         em.close();                
     }
 
-    public void createTree() {
-        TreeNode root = new TreeNode();
-        root.setName("0");
-        int[] fanOuts = {1,2,3};
-        root.createTree(fanOuts);
-        assertArrayEquals(fanOuts, root.getFanOuts());
+    public void testO2MQueryIndex() {
+        createEntities(JPQLIndexEntityClasses.OrderedOneToManyEntity, UnorderedNameEntity.class);
+        verifyEntities(JPQLIndexEntityClasses.OrderedOneToManyEntity, UnorderedNameEntity.class);
     }
 
-    public void persistTree() {
-        int[] fanOuts = {2,3,4};
-        create(fanOuts);
+    public void testO2MXMLQueryIndex() {
+        createEntities(JPQLIndexEntityClasses.XMLOrderedOneToManyEntity, XMLUnorderedNameEntity.class);
+        verifyEntities(JPQLIndexEntityClasses.XMLOrderedOneToManyEntity, XMLUnorderedNameEntity.class);
+    }
+
+    /* TODO
+    public void testM2MQueryIndex() {
+    }
+    */
+
+    /* TODO
+    public void testM2MXMLQueryIndex() {
+    }
+    */
+
+    public void testElementQueryIndex() {
+        createEntities(JPQLIndexEntityClasses.OrderedElementEntity, String.class);
+        verifyEntities(JPQLIndexEntityClasses.OrderedElementEntity, String.class);
+    }
+
+    public void testElementXMLQueryIndex() {
+        createEntities(JPQLIndexEntityClasses.XMLOrderedElementEntity, String.class);
+        verifyEntities(JPQLIndexEntityClasses.XMLOrderedElementEntity, String.class);
     }
 
     /**
-     * Create a uniform tree with given fan out.
-     * Persist.
+     * Create and persist a uniform OneToMany tree with given fan out.
      */
-    TreeNode create(int[] original) {
+    private TreeNode createTreeNodeEntities(int[] original) {
         TreeNode root = new TreeNode();
         root.createTree(original);
+        assertArrayEquals(original, root.getFanOuts());
         
-        EntityManager em = emf.createEntityManager();
+        EntityManager em = emf2.createEntityManager();
         em.getTransaction().begin();
         em.persist(root);
         em.getTransaction().commit();
@@ -81,9 +172,250 @@
     /**
      *  Asserts the given arrays have exactly same elements at the same index.
      */
-    void assertArrayEquals(int[] a, int[] b) {
+    private void assertArrayEquals(int[] a, int[] b) {
         assertEquals(a.length, b.length);
         for (int i = 0; i<a.length; i++)
             assertEquals(a[i], b[i]);
     }
+    
+    private <C,E> void createEntities(JPQLIndexEntityClasses entityType, Class<E> elementClass)
+    {
+        if (IOrderedEntity.class.isAssignableFrom(entityType.getEntityClass())) {
+            if (INameEntity.class.isAssignableFrom(elementClass)) {
+                log.trace("** Test INameEntity modifications on IOrderedEntity.");
+                createOrderedEntities(entityType, (Class<INameEntity>)elementClass);
+            } else {
+                fail("createEntities(IOrderedEntity) - Unexpected elementClass=" + elementClass.getSimpleName());
+            }
+        } else if (IOrderedElements.class.isAssignableFrom(entityType.getEntityClass())) {
+            if (String.class.isAssignableFrom(elementClass)) {
+                log.trace("** Test String modifications on IOrderedElements.");
+                createOrderedElements(entityType);
+            } else {
+                fail("createEntities(IOrderedElements) - Unexpected elementClass=" + elementClass.getSimpleName());
+            }
+        } else {
+            fail("createEntities() - Unexpected entityType=" + entityType.getEntityName());            
+        }
+    }
+        
+    private void createOrderedEntities(JPQLIndexEntityClasses entityType, Class<INameEntity> elementClass)
+    {
+        EntityManager em = null;
+        
+        try {
+            Class<IOrderedEntity> entityClass =
+                (Class<IOrderedEntity>)Class.forName(entityType.getEntityClassName());
+            String entityClassName = entityType.getEntityName();
+            String elementClassName = elementClass.getName().substring(
+                elementClass.getName().lastIndexOf('.') + 1);
+            Integer entityId = 1;
+            
+            IOrderedEntity newEntity = (IOrderedEntity)constructNewEntityObject(entityType);
+            newEntity.setId(entityId);
+            // create the entity elements to add
+            Constructor<INameEntity> elementConstrctor = elementClass.getConstructor(String.class);
+            List<INameEntity> newElements = new ArrayList<INameEntity>();
+            for (int i=0; i<Element_Names.length; i++) {
+                newElements.add(elementConstrctor.newInstance(Element_Names[i]));
+            }
+            
+            // add the entities
+            log.trace("Adding " + newElements.size() + " of " + elementClassName + " to " + entityClassName);
+            em = emf2.createEntityManager();
+            em.getTransaction().begin();
+            for (INameEntity newElement : newElements)
+            {
+                /* For Many to Many cases
+                    jpaRW.getEm().persist(newElementB);
+                    if (elementClass == OrderedNameEntity.class || elementClass == XMLOrderedNameEntity.class) {
+                        if( listFieldName.charAt(1) == 'o') {
+                            setColumnMethod.invoke(new2Boy, newEntity);
+                        } else {
+                            addColumnsMethod.invoke(new2Boy, newEntity);
+                        }
+                    }
+                */
+                em.persist(newElement);
+                newEntity.addEntity((INameEntity)newElement);
+            }
+            em.persist(newEntity);
+            em.getTransaction().commit();
+            em.clear();
+
+            // verify the entities were stored
+            log.trace("Verifing the entity was stored");
+            IOrderedEntity findEntity = em.find(entityClass, entityId);
+            assertNotNull("Found entity just created", findEntity);
+            assertEquals("Verify entity id = " + entityId, entityId.intValue(), findEntity.getId());
+            assertEquals("Verify entity name = " + entityClass.getName(), entityClass.getName(),
+                findEntity.getClass().getName());
+
+        } catch (Throwable t) {
+            log.error(t);
+            throw new RuntimeException(t);
+        } finally {
+            if (em != null) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+                em = null;
+            }
+        }
+    }
+    
+    private void createOrderedElements(JPQLIndexEntityClasses entityType)
+    {
+        EntityManager em = null;
+        
+        try {
+            Class<IOrderedElements> entityClass =
+                (Class<IOrderedElements>)Class.forName(entityType.getEntityClassName());
+            String entityClassName = entityType.getEntityName();
+            Integer entityId = 1;
+            
+            IOrderedElements newEntity = (IOrderedElements)constructNewEntityObject(entityType);
+            newEntity.setId(entityId);
+            List<String> namesList = new ArrayList<String>();
+            for (int i=0; i<Element_Names.length; i++) {
+                namesList.add(Element_Names[i]);
+            }
+            newEntity.setListElements(namesList);
+            // add the entity
+            em = emf2.createEntityManager();
+            em.getTransaction().begin();
+            em.persist(newEntity);
+            em.getTransaction().commit();
+            em.clear();
+
+            // verify the entity was stored
+            log.trace("Verifing the entity was stored");
+            IOrderedElements findEntity = em.find(entityClass, entityId);
+            assertNotNull("Found entity just created", findEntity);
+            assertEquals("Verify entity id = " + entityId, entityId.intValue(), findEntity.getId());
+            assertEquals("Verify entity name = " + entityClass.getName(), entityClass.getName(),
+                findEntity.getClass().getName());
+
+        } catch (Throwable t) {
+            log.error(t);
+            throw new RuntimeException(t);
+        } finally {
+            if (em != null) {
+                if (em.getTransaction().isActive()) {
+                    em.getTransaction().rollback();
+                }
+                em.close();
+                em = null;
+            }
+        }
+    }
+    
+    private <C,E> void verifyEntities(JPQLIndexEntityClasses entityType, Class<E> elementClass)
+    {
+        if (IOrderedEntity.class.isAssignableFrom(entityType.getEntityClass())) {
+            if (INameEntity.class.isAssignableFrom(elementClass)) {
+                log.trace("** Verify INameEntity modifications on IOrderedEntity.");
+                verifyOrderedEntities(entityType, (Class<INameEntity>)elementClass);
+            } else {
+                fail("verifyEntities(IOrderedEntity) - Unexpected elementClass=" + elementClass.getSimpleName());
+            }
+        } else if (IOrderedElements.class.isAssignableFrom(entityType.getEntityClass())) {
+            if (String.class.isAssignableFrom(elementClass)) {
+                log.trace("** Test String modifications on IOrderedElements.");
+                verifyOrderedElements(entityType);
+            } else {
+                fail("verifyEntities(IOrderedElements) - Unexpected elementClass=" + elementClass.getSimpleName());
+            }
+        } else {
+            fail("verifyEntities() - Unexpected entityType=" + entityType.getEntityName());            
+        }
+    }
+    
+    private <E> void verifyOrderedEntities(JPQLIndexEntityClasses entityType, Class<INameEntity> elementClass)
+    {
+        try {
+            Class<IOrderedEntity> entityClass = (Class<IOrderedEntity>)Class.forName(entityType.getEntityClassName());
+            String entityClassName = entityType.getEntityName();
+            entityClassName = entityClassName.substring(entityClassName.lastIndexOf('.') + 1);
+
+            if (log.isTraceEnabled()) {
+                log.trace("Query " + entityClassName + " and verify 'entities' collection has "
+                    + Element_Names.length + " elements in this order: "
+                    + Arrays.toString(Element_Names));
+            }
+            
+            EntityManager em = emf2.createEntityManager();
+            em.clear();
+            int idx = 0;
+            for (String expectedEntityName : Element_Names) {
+                Query q = em.createQuery("select w from " + entityClassName
+                    + " o join o.entities w where index(w) = " + idx);
+                List<E> res = (List<E>)q.getResultList();
+                assertEquals("  Verify query returns 1 element for index " + idx, 1, res.size());
+                if (res.size() == 1) {
+                    Object oo = res.get(0);
+                    assertEquals("  Verify element type is " + elementClass.getName(), elementClass.getName(),
+                        oo.getClass().getName());
+                    String name;
+                    try {
+                        name = (String) elementClass.getMethod("getName").invoke(oo);
+                        assertEquals("  Verify element value is '"
+                            + expectedEntityName + "'", expectedEntityName, name);
+                    } catch (Exception e) {
+                        log.error("  Caught unexpected exception:" + e.getMessage());
+                        throw new RuntimeException(e);
+                    }
+                }
+                ++idx;
+            }
+        } catch (Exception e) {
+            log.error(e);
+            throw new RuntimeException(e);
+        }
+    }
+    
+    private <E> void verifyOrderedElements(JPQLIndexEntityClasses entityType)
+    {
+        try {
+            Class<IOrderedEntity> entityClass = (Class<IOrderedEntity>)Class.forName(entityType.getEntityClassName());
+            String entityClassName = entityType.getEntityName();
+            entityClassName = entityClassName.substring(entityClassName.lastIndexOf('.') + 1);
+
+            if (log.isTraceEnabled()) {
+                log.trace("Query " + entityClassName + " and verify 'elements' collection has "
+                    + Element_Names.length + " elements in this order: "
+                    + Arrays.toString(Element_Names));
+            }
+            
+            EntityManager em = emf2.createEntityManager();
+            em.clear();
+            int idx = 0;
+            for (String expectedEntityName : Element_Names) {
+                Query q = em.createQuery("select w from " + entityClassName
+                    + " o join o.elements w where index(w) = " + idx);
+                List<E> res = (List<E>)q.getResultList();
+                assertEquals("  Verify query returns 1 element for index " + idx, 1, res.size());
+                if (res.size() == 1) {
+                    Object oo = res.get(0);
+                    assertEquals("  Verify element type is String", String.class.getName(),
+                        oo.getClass().getName());
+                    String name;
+                    try {
+                        name = (String) oo.toString();
+                        assertEquals("  Verify element value is '"
+                            + expectedEntityName + "'", expectedEntityName, name);
+                    } catch (Exception e) {
+                        log.error("  Caught unexpected exception:" + e.getMessage());
+                        throw new RuntimeException(e);
+                    }
+                }
+                ++idx;
+            }
+        } catch (Exception e) {
+            log.error(e);
+            throw new RuntimeException(e);
+        }
+    }
+    
 }

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/AbstractPersistenceTestCase.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/AbstractPersistenceTestCase.java?rev=916855&r1=916854&r2=916855&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/AbstractPersistenceTestCase.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/AbstractPersistenceTestCase.java Fri Feb 26 23:16:13 2010
@@ -23,6 +23,8 @@
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
 import java.sql.SQLException;
@@ -615,4 +617,49 @@
         }
     }
 
+    protected Class<?> resolveEntityClass(JPAEntityClassEnum enumerationRef)
+        throws ClassNotFoundException
+    {
+        if (enumerationRef == null)
+        {
+            throw new IllegalArgumentException("Null value passed into the constructNewEntityObject method.");
+        }
+        String className = enumerationRef.getEntityClassName();
+        if (className == null)
+        {
+            throw new IllegalArgumentException("Enumeration toString() method implementation returned a null value.");
+        }
+
+        return Class.forName(className);
+    }
+
+    protected Object constructNewEntityObject(JPAEntityClassEnum enumerationRef)
+        throws ClassNotFoundException, SecurityException, NoSuchMethodException,
+        IllegalArgumentException, InstantiationException,
+        IllegalAccessException, InvocationTargetException
+    {
+        Class<?> classType = resolveEntityClass(enumerationRef);
+        Class<?> constructorArgSig[] = new Class[] {};
+        Object constructorArgs[] = new Object[] {};
+
+        Constructor<?> classConstructor = classType.getConstructor(constructorArgSig);
+        Object newEntity = classConstructor.newInstance(constructorArgs);
+
+        return newEntity;
+    }
+
+    protected Object constructNewEntityObject(Class<?> entityClass)
+        throws SecurityException, NoSuchMethodException,
+        IllegalArgumentException, InstantiationException,
+        IllegalAccessException, InvocationTargetException
+    {
+        Class<?> constructorArgSig[] = new Class[] {};
+        Object constructorArgs[] = new Object[] {};
+
+        Constructor<?> classConstructor = entityClass.getConstructor(constructorArgSig);
+        Object newEntity = classConstructor.newInstance(constructorArgs);
+
+        return newEntity;
+    }
+
 }

Added: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/JPAEntityClassEnum.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/JPAEntityClassEnum.java?rev=916855&view=auto
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/JPAEntityClassEnum.java (added)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/JPAEntityClassEnum.java Fri Feb 26 23:16:13 2010
@@ -0,0 +1,25 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+package org.apache.openjpa.persistence.test;
+
+public interface JPAEntityClassEnum {
+    public String getEntityClassName();
+    public String getEntityName();
+}
+

Propchange: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/JPAEntityClassEnum.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/META-INF/persistence.xml
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/META-INF/persistence.xml?rev=916855&r1=916854&r2=916855&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/META-INF/persistence.xml (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/META-INF/persistence.xml Fri Feb 26 23:16:13 2010
@@ -47,6 +47,7 @@
         <mapping-file>org/apache/openjpa/persistence/jdbc/order/order-orm.xml</mapping-file>
         <mapping-file>org/apache/openjpa/persistence/jdbc/order/order-orm-2.xml</mapping-file>
         <mapping-file>org/apache/openjpa/persistence/jdbc/order/order-orm-3.xml</mapping-file>
+        <mapping-file>org/apache/openjpa/persistence/jpql/expressions/orm.xml</mapping-file>
         <mapping-file>org/apache/openjpa/persistence/inheritance/orm.xml</mapping-file>
         <mapping-file>org/apache/openjpa/persistence/orm.xml</mapping-file>
         <mapping-file>org/apache/openjpa/persistence/embed/embed-assoc-over-orm.xml</mapping-file>
@@ -284,37 +285,55 @@
             <property name="openjpa.jdbc.SynchronizeMappings"
                   value="buildSchema"/>
         </properties>
-	</persistence-unit>
+    </persistence-unit>
 	
-	<persistence-unit name="delimited-identifiers-seq-gen-xml">
+    <persistence-unit name="delimited-identifiers-seq-gen-xml">
     	<mapping-file>META-INF/delimited-identifiers-seq-gen-xml-orm.xml</mapping-file>
     	<properties>
             <property name="openjpa.jdbc.SynchronizeMappings"
                   value="buildSchema"/>
         </properties>
-	</persistence-unit>
+    </persistence-unit>
 	
-	<persistence-unit name="delimited-identifiers-inheritance-xml">
+    <persistence-unit name="delimited-identifiers-inheritance-xml">
     	<mapping-file>META-INF/delimited-identifiers-inheritance-xml-orm.xml</mapping-file>
     	<properties>
             <property name="openjpa.jdbc.SynchronizeMappings"
                   value="buildSchema"/>
         </properties>
-	</persistence-unit>
+    </persistence-unit>
 	
-	<persistence-unit name="delimited-identifiers-joins-xml">
+    <persistence-unit name="delimited-identifiers-joins-xml">
     	<mapping-file>META-INF/delimited-identifiers-joins-orm.xml</mapping-file>
     	<properties>
             <property name="openjpa.jdbc.SynchronizeMappings"
                   value="buildSchema"/>
         </properties>
-	</persistence-unit>
+    </persistence-unit>
 	
-	<persistence-unit name="delimited-identifiers-result-set-xml">
+    <persistence-unit name="delimited-identifiers-result-set-xml">
     	<mapping-file>META-INF/delimited-identifiers-result-set-orm.xml</mapping-file>
     	<properties>
             <property name="openjpa.jdbc.SynchronizeMappings"
                   value="buildSchema"/>
         </properties>
-	</persistence-unit>
+    </persistence-unit>
+
+    <persistence-unit name="JPQLIndex">
+        <mapping-file>org/apache/openjpa/persistence/jpql/expressions/orm.xml</mapping-file>
+
+        <class>org.apache.openjpa.persistence.jpql.entities.OrderedElementEntity</class>
+        <class>org.apache.openjpa.persistence.jpql.entities.XMLOrderedElementEntity</class>
+        <class>org.apache.openjpa.persistence.jpql.entities.OrderedManyToManyEntity</class>
+        <class>org.apache.openjpa.persistence.jpql.entities.XMLOrderedManyToManyEntity</class>
+        <class>org.apache.openjpa.persistence.jpql.entities.OrderedOneToManyEntity</class>
+        <class>org.apache.openjpa.persistence.jpql.entities.XMLOrderedOneToManyEntity</class>
+        <class>org.apache.openjpa.persistence.jpql.entities.UnorderedNameEntity</class>
+        <class>org.apache.openjpa.persistence.jpql.entities.XMLUnorderedNameEntity</class>
+        <properties>
+            <property name="openjpa.jdbc.SynchronizeMappings"
+                value="buildSchema" />
+        </properties>
+    </persistence-unit>
+
 </persistence>

Added: openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jpql/expressions/orm.xml
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jpql/expressions/orm.xml?rev=916855&view=auto
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jpql/expressions/orm.xml (added)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jpql/expressions/orm.xml Fri Feb 26 23:16:13 2010
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_2_0.xsd" version="2.0">
+
+    <entity class="org.apache.openjpa.persistence.jpql.entities.XMLOrderedManyToManyEntity">
+        <attributes>
+            <id name="id" />
+            <many-to-many name="entities">
+                <order-column/>
+            </many-to-many>
+        </attributes>
+    </entity>
+
+    <entity class="org.apache.openjpa.persistence.jpql.entities.XMLOrderedOneToManyEntity">
+        <attributes>
+            <id name="id" />
+            <one-to-many name="entities">
+                <order-column/>
+            </one-to-many>
+        </attributes>
+    </entity>
+
+    <entity class="org.apache.openjpa.persistence.jpql.entities.XMLOrderedElementEntity">
+        <attributes>
+            <id name="id" />
+            <element-collection name="elements">
+                <order-column />
+            </element-collection>
+        </attributes>
+    </entity>
+
+    <entity class="org.apache.openjpa.persistence.jpql.entities.XMLUnorderedNameEntity">
+        <attributes>
+            <id name="id" />
+            <basic name="name" />
+        </attributes>
+    </entity>
+
+</entity-mappings>

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jpql/expressions/persistence.xml
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jpql/expressions/persistence.xml?rev=916855&r1=916854&r2=916855&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jpql/expressions/persistence.xml (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jpql/expressions/persistence.xml Fri Feb 26 23:16:13 2010
@@ -23,11 +23,12 @@
 	xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
 	version="2.0">
 
-    <persistence-unit name="JPQLIndex" transaction-type="RESOURCE_LOCAL">
+    <persistence-unit name="JPQLIndex">
         <description>PU for JPQL Index testing</description>
         <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
         <mapping-file>org/apache/openjpa/persistence/jpql/expressions/orm.xml</mapping-file>
 
+        <class>org.apache.openjpa.persistence.proxy.TreeNode</class>
         <class>org.apache.openjpa.persistence.jpql.entities.OrderedElementEntity</class>
         <class>org.apache.openjpa.persistence.jpql.entities.XMLOrderedElementEntity</class>
         <class>org.apache.openjpa.persistence.jpql.entities.OrderedManyToManyEntity</class>
@@ -38,8 +39,8 @@
         <class>org.apache.openjpa.persistence.jpql.entities.XMLUnorderedNameEntity</class>
         <properties>
             <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema" />
-            <!-- property name="openjpa.Log" value="SQL=TRACE"/ -->
-            <property name="openjpa.RuntimeUnenhancedClasses" value="unsupported"/>
+            <!-- <property name="openjpa.Log" value="SQL=TRACE"/> -->
+            <!-- <property name="openjpa.RuntimeUnenhancedClasses" value="unsupported"/> -->
         </properties>
     </persistence-unit>