openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Dick <michael.d.d...@gmail.com>
Subject Re: svn commit: r800847 - OPENJPA-1222
Date Tue, 04 Aug 2009 22:23:38 GMT
Nevermind,

The order of test execution changes with different JVMs, and the IBM JVM
happens to cover up for a testcase bug.. TestMultiselect defines its own
domain and should extend AbstractCriteriaTestCase, or reuse the entire
entity hierarchy from CriteriaTest..

Should be fixed later tonight. Sorry for the alarm, and thanks for your help
Donald.

-mike

On Tue, Aug 4, 2009 at 5:07 PM, Michael Dick <michael.d.dick@gmail.com>wrote:

> Doesn't look like it's a 32 vs 64 bit issue. Running the tests individually
> (what I did with the 32 bit version) passes, running the entire bucket shows
> problems.
>
> Changing forkMode to always *should* resolve the problem but the tests will
> take much longer. Still looking into it, but any other ideas are welcome.
>
> -mike
>
>
> On Tue, Aug 4, 2009 at 2:16 PM, Michael Dick <michael.d.dick@gmail.com>wrote:
>
>> Might be specific to the 64 bit version, the criteria tests work for me
>> with Sun 32 bit JDK6 (java full version "1.6.0_07-b06"). That JDK is a bit
>> old though, I'll try upgrading.
>>
>> -mike
>>
>>
>> On Tue, Aug 4, 2009 at 2:10 PM, Donald Woods <dwoods@apache.org> wrote:
>>
>>> This seems to have broken builds with 64bit Sun 6 JDK on Linux (but not
>>> MacOSX), as now there are 239 criteria test errors/failures....
>>>
>>>
>>> -Donald
>>>
>>>
>>> mikedd@apache.org wrote:
>>>
>>>> Author: mikedd
>>>> Date: Tue Aug  4 15:36:18 2009
>>>> New Revision: 800847
>>>>
>>>> URL: http://svn.apache.org/viewvc?rev=800847&view=rev
>>>> Log:
>>>> OPENJPA-1222: Enabling and refactoring Criteria testcases. The Criteria
>>>> testcases use a static EMF which requires the entity model to be known up
>>>> front - refactoring creates a separate EMF for the embeddable and joined
>>>> models.
>>>>
>>>> Added:
>>>>
>>>>  openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/AbstractCriteriaTestCase.java
>>>>   (with props)
>>>>
>>>>  openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/EmbeddableDomainTestCase.java
>>>>   (with props)
>>>>
>>>>  openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/JoinDomainTestCase.java
>>>>   (with props)
>>>> Modified:
>>>>    openjpa/trunk/openjpa-persistence-jdbc/pom.xml
>>>>
>>>>  openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/CriteriaTest.java
>>>>
>>>>  openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestEmbeddableCriteria.java
>>>>
>>>>  openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJoinCondition.java
>>>>
>>>>  openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestMetaModelTypesafeCriteria.java
>>>>
>>>>  openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestStringCriteria.java
>>>>
>>>>  openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestTypeSafeCondExpression.java
>>>>
>>>>  openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestTypesafeCriteria.java
>>>>
>>>>  openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/embed/Item1.java
>>>>
>>>> Modified: openjpa/trunk/openjpa-persistence-jdbc/pom.xml
>>>> URL:
>>>> http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/pom.xml?rev=800847&r1=800846&r2=800847&view=diff
>>>>
>>>> ==============================================================================
>>>> --- openjpa/trunk/openjpa-persistence-jdbc/pom.xml (original)
>>>> +++ openjpa/trunk/openjpa-persistence-jdbc/pom.xml Tue Aug  4 15:36:18
>>>> 2009
>>>> @@ -810,10 +810,9 @@
>>>>                         <!--
>>>> <exclude>org/apache/openjpa/persistence/lockmgr/*.java</exclude> -->
>>>>
>>>>                         <!--
>>>> ================================================================== -->
>>>> -                                               <!--  Critera &
>>>> MetaModel tests are *temporarily* excluded to wait for  -->
>>>> +                                               <!--  MetaModel tests
>>>> are *temporarily* excluded to wait for            -->
>>>>                                                <!--  spec to stabilize
>>>> on Result Processing API                        -->
>>>>                                                <!--
>>>> ================================================================== --> -
>>>>
>>>>  <exclude>org/apache/openjpa/persistence/criteria/*.java</exclude>
>>>>
>>>> <exclude>org/apache/openjpa/persistence/meta/*.java</exclude>
>>>>                                                 <!-- Exclude subclassing
>>>> tests   -->
>>>>
>>>> Added:
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/AbstractCriteriaTestCase.java
>>>> URL:
>>>> http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/AbstractCriteriaTestCase.java?rev=800847&view=auto
>>>>
>>>> ==============================================================================
>>>> ---
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/AbstractCriteriaTestCase.java
>>>> (added)
>>>> +++
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/AbstractCriteriaTestCase.java
>>>> Tue Aug  4 15:36:18 2009
>>>> @@ -0,0 +1,386 @@
>>>> +/*
>>>> + * 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.criteria;
>>>> +
>>>> +import java.io.PrintWriter;
>>>> +import java.io.StringWriter;
>>>> +import java.lang.reflect.Method;
>>>> +import java.util.ArrayList;
>>>> +import java.util.HashMap;
>>>> +import java.util.List;
>>>> +import java.util.Map;
>>>> +
>>>> +import javax.persistence.EntityManager;
>>>> +import javax.persistence.Persistence;
>>>> +import javax.persistence.Query;
>>>> +import javax.persistence.criteria.CriteriaQuery;
>>>> +
>>>> +import junit.framework.TestCase;
>>>> +
>>>> +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.lib.jdbc.AbstractJDBCListener;
>>>> +import org.apache.openjpa.lib.jdbc.JDBCEvent;
>>>> +import org.apache.openjpa.lib.jdbc.JDBCListener;
>>>> +import org.apache.openjpa.lib.jdbc.ReportingSQLException;
>>>> +import org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI;
>>>> +import org.apache.openjpa.persistence.test.AllowFailure;
>>>> +
>>>> +public abstract class AbstractCriteriaTestCase extends TestCase {
>>>> +
>>>> +    protected abstract SQLAuditor getAuditor();
>>>> +
>>>> +    protected abstract OpenJPAEntityManagerFactorySPI
>>>> getEntityManagerFactory();
>>>> +    +    protected abstract EntityManager getEntityManager();
>>>> +
>>>> +    /**
>>>> +     * Create an entity manager factory for persistence unit
>>>> <code>pu</code>. Put {@link #CLEAR_TABLES} in this list to
>>>> +     * tell the test framework to delete all table contents before
>>>> running the tests.
>>>> +     * +     * @param props
>>>> +     *            list of persistent types used in testing and/or
>>>> configuration values in the form
>>>> +     *            key,value,key,value...
>>>> +     */
>>>> +    protected OpenJPAEntityManagerFactorySPI createNamedEMF(Class<?>...
>>>> types) {
>>>> +        Map<Object, Object> map = new HashMap<Object, Object>();
>>>> +        map.put("openjpa.jdbc.SynchronizeMappings",
>>>> "buildSchema(ForeignKeys=true," + "SchemaAction='add')");
>>>> +        map.put("openjpa.jdbc.QuerySQLCache", "false");
>>>> +        map.put("openjpa.DynamicEnhancementAgent", "false");
>>>> +        map.put("openjpa.RuntimeUnenhancedClasses", "unsupported");
>>>> +        map.put("openjpa.Compatibility",
>>>> "QuotedNumbersInQueries=true");
>>>> +        map.put("openjpa.jdbc.JDBCListeners", new JDBCListener[] {
>>>> getAuditor() });
>>>> +
>>>> +        StringBuffer buf = new StringBuffer();
>>>> +        for (Class<?> c : types) {
>>>> +            if (buf.length() > 0)
>>>> +                buf.append(";");
>>>> +            buf.append(c.getName());
>>>> +        }
>>>> +
>>>> +        map.put("openjpa.MetaDataFactory", "jpa(Types=" +
>>>> buf.toString() + ")");
>>>> +
>>>> +        Map<Object, Object> config = new HashMap<Object,
>>>> Object>(System.getProperties());
>>>> +        config.putAll(map);
>>>> +        return (OpenJPAEntityManagerFactorySPI)
>>>> Persistence.createEntityManagerFactory("test", config);
>>>> +    }
>>>> +
>>>> +    void setDictionary() {
>>>> +        JDBCConfiguration conf = (JDBCConfiguration)
>>>> getEntityManagerFactory().getConfiguration();
>>>> +        DBDictionary dict = conf.getDBDictionaryInstance();
>>>> +        dict.requiresCastForComparisons = false;
>>>> +        dict.requiresCastForMathFunctions = false;
>>>> +    }
>>>> +
>>>> +    /**
>>>> +     * Executes the given CriteriaQuery and JPQL string and compare
>>>> their respective SQLs for equality.
>>>> +     */
>>>> +    void assertEquivalence(CriteriaQuery<?> c, String jpql) {
>>>> +        assertEquivalence(c, jpql, null);
>>>> +    }
>>>> +
>>>> +    /**
>>>> +     * Executes the given CriteriaQuery and JPQL string and compare
>>>> their respective SQLs for equality. Sets the
>>>> +     * supplied parameters, if any.
>>>> +     */
>>>> +    void assertEquivalence(CriteriaQuery<?> c, String jpql, String[]
>>>> paramNames, Object[] params) {
>>>> +        Query cQ = getEntityManager().createQuery(c);
>>>> +        Query jQ = getEntityManager().createQuery(jpql);
>>>> +        setParameters(cQ, paramNames, params);
>>>> +        setParameters(jQ, paramNames, params);
>>>> +
>>>> +        executeAndCompareSQL(jpql, cQ, jQ);
>>>> +    }
>>>> +
>>>> +    /**
>>>> +     * Executes the given CriteriaQuery and JPQL string and compare
>>>> their respective SQLs for equality.
>>>> +     */
>>>> +    void assertEquivalence(CriteriaQuery<?> c, String jpql, Object[]
>>>> params) {
>>>> +        +        Query cQ = getEntityManager().createQuery(c);
>>>> +        Query jQ = getEntityManager().createQuery(jpql);
>>>> +        setParameters(cQ, params);
>>>> +        setParameters(jQ, params);
>>>> +
>>>> +        executeAndCompareSQL(jpql, cQ, jQ);
>>>> +    }
>>>> +
>>>> +    /**
>>>> +     * Execute the two given queries. The first query originated from a
>>>> JPQL string must be well-formed. The second
>>>> +     * query originated from a Criteria is being tested.
>>>> +     * +     * @param sqls
>>>> +     *            The target SQL for the queries will be filled-in the
>>>> given array.
>>>> +     * @return true if both queries execute successfully.
>>>> +     */
>>>> +    void executeAndCompareSQL(String jpql, Query cQ, Query jQ) {
>>>> +        List<String> jSQL = null;
>>>> +        List<String> cSQL = null;
>>>> +        try {
>>>> +            jSQL = executeQueryAndCollectSQL(jQ);
>>>> +        } catch (Exception e) {
>>>> +            StringWriter w = new StringWriter();
>>>> +            e.printStackTrace(new PrintWriter(w));
>>>> +            fail("JPQL " + jpql + " failed to execute\r\n" + w);
>>>> +        }
>>>> +        getEntityManager().clear();
>>>> +        try {
>>>> +            cSQL = executeQueryAndCollectSQL(cQ);
>>>> +        } catch (Exception e) {
>>>> +            StringWriter w = new StringWriter();
>>>> +            e.printStackTrace(new PrintWriter(w));
>>>> +            fail("CriteriaQuery corresponding to " + jpql + " failed to
>>>> execute\r\n" + w);
>>>> +        }
>>>> +
>>>> +        printSQL("Target SQL for JPQL", jSQL);
>>>> +        printSQL("Target SQL for CriteriaQuery", cSQL);
>>>> +        if (jSQL.size() != cSQL.size()) {
>>>> +            printSQL("Target SQL for JPQL", jSQL);
>>>> +            printSQL("Target SQL for CriteriaQuery", cSQL);
>>>> +            assertEquals("No. of SQL generated for JPQL and
>>>> CriteriaQuery for " + jpql + " is different", jSQL.size(),
>>>> +                cSQL.size());
>>>> +        }
>>>> +
>>>> +        for (int i = 0; i < jSQL.size(); i++) {
>>>> +            if (!jSQL.get(i).equals(cSQL.get(i))) {
>>>> +                printSQL("Target SQL for JPQL", jSQL);
>>>> +                printSQL("Target SQL for CriteriaQuery", cSQL);
>>>> +                assertEquals(i + "-th SQL for JPQL and CriteriaQuery
>>>> for " + jpql + " is different", jSQL.get(i), cSQL
>>>> +                    .get(i));
>>>> +            }
>>>> +        }
>>>> +    }
>>>> +
>>>> +    void executeAndCompareSQL(String jpql, String expectedSQL) {
>>>> +        JDBCConfiguration conf = (JDBCConfiguration)
>>>> getEntityManagerFactory().getConfiguration();
>>>> +        DBDictionary dict = conf.getDBDictionaryInstance();
>>>> +
>>>> +        Query jQ = getEntityManager().createQuery(jpql);
>>>> +
>>>> +        List<String> jSQL = null;
>>>> +        try {
>>>> +            jSQL = executeQueryAndCollectSQL(jQ);
>>>> +        } catch (Exception e) {
>>>> +            StringWriter w = new StringWriter();
>>>> +            e.printStackTrace(new PrintWriter(w));
>>>> +            fail("JPQL " + jpql + " failed to execute\r\n" + w);
>>>> +        }
>>>> +
>>>> +        printSQL("Target SQL for JPQL", jSQL);
>>>> +
>>>> +        if (!(dict instanceof DerbyDictionary))
>>>> +            return;
>>>> +
>>>> +        for (int i = 0; i < jSQL.size(); i++) {
>>>> +            if (!jSQL.get(i).equals(expectedSQL)) {
>>>> +                printSQL("SQL for JPQL", jSQL.get(i));
>>>> +                printSQL("Expected SQL", expectedSQL);
>>>> +                assertEquals(i + "-th Expected SQL and SQL for JPQL: "
>>>> + jpql + " are different", expectedSQL, jSQL
>>>> +                    .get(i));
>>>> +            }
>>>> +        }
>>>> +    }
>>>> +
>>>> +    void executeAndCompareSQL(Query jQ, String expectedSQL) {
>>>> +        JDBCConfiguration conf = (JDBCConfiguration)
>>>> getEntityManagerFactory().getConfiguration();
>>>> +        DBDictionary dict = conf.getDBDictionaryInstance();
>>>> +
>>>> +        List<String> jSQL = null;
>>>> +        try {
>>>> +            jSQL = executeQueryAndCollectSQL(jQ);
>>>> +        } catch (Exception e) {
>>>> +            StringWriter w = new StringWriter();
>>>> +            e.printStackTrace(new PrintWriter(w));
>>>> +        }
>>>> +
>>>> +        if (!(dict instanceof DerbyDictionary))
>>>> +            return;
>>>> +
>>>> +        printSQL("Expected SQL", expectedSQL);
>>>> +        String jSql = jSQL.get(0).trim();
>>>> +        if (jSql.indexOf("optimize for 1 row") != -1)
>>>> +            jSql = jSql.substring(0, jSql.indexOf("optimize for 1
>>>> row")).trim();
>>>> +
>>>> +        if (!jSql.equals(expectedSQL)) {
>>>> +            printSQL("SQL for JPQL", jSql);
>>>> +            assertEquals(expectedSQL, jSql);
>>>> +        }
>>>> +    }
>>>> +
>>>> +    void executeExpectFail(CriteriaQuery<?> c, String jpql) {
>>>> +        List<String> cSQL = null;
>>>> +        StringWriter w = new StringWriter();
>>>> +        try {
>>>> +            Query cQ = getEntityManager().createQuery(c);
>>>> +            cSQL = executeQueryAndCollectSQL(cQ);
>>>> +            fail("CriteriaQuery corresponding to " + jpql + " is
>>>> expected to fail\r\n" + w);
>>>> +        } catch (Exception e) {
>>>> +            e.printStackTrace(new PrintWriter(w));
>>>> +        }
>>>> +    }
>>>> +
>>>> +    void executeExpectFail(CriteriaQuery<?> c, String jpql, String[]
>>>> paramNames, Object[] params) {
>>>> +        List<String> cSQL = null;
>>>> +        StringWriter w = new StringWriter();
>>>> +        try {
>>>> +            Query cQ = getEntityManager().createQuery(c);
>>>> +            for (int i = 0; i < params.length; i++)
>>>> +                cQ.setParameter(paramNames[i], params[i]);
>>>> +            cSQL = executeQueryAndCollectSQL(cQ);
>>>> +            fail("CriteriaQuery corresponding to " + jpql + " is
>>>> expected to fail\r\n" + w);
>>>> +        } catch (Exception e) {
>>>> +            e.printStackTrace(new PrintWriter(w));
>>>> +        }
>>>> +    }
>>>> +
>>>> +    void executeExpectFail(String jpql) {
>>>> +        List<String> jSQL = null;
>>>> +        StringWriter w = new StringWriter();
>>>> +        try {
>>>> +            Query jQ = getEntityManager().createQuery(jpql);
>>>> +            jSQL = executeQueryAndCollectSQL(jQ);
>>>> +            fail("JPQL " + jpql + " is expected to Failed to
>>>> execute\r\n" + w);
>>>> +        } catch (Exception e) {
>>>> +            e.printStackTrace(new PrintWriter(w));
>>>> +        }
>>>> +    }
>>>> +
>>>> +    void executeExpectFail(String jpql, String[] paramNames, Object[]
>>>> params) {
>>>> +        List<String> jSQL = null;
>>>> +        StringWriter w = new StringWriter();
>>>> +        try {
>>>> +            Query jQ = getEntityManager().createQuery(jpql);
>>>> +            for (int i = 0; i < params.length; i++)
>>>> +                jQ.setParameter(paramNames[i], params[i]);
>>>> +            jSQL = executeQueryAndCollectSQL(jQ);
>>>> +            fail("JPQL " + jpql + " is expected to Failed to
>>>> execute\r\n" + w);
>>>> +        } catch (Exception e) {
>>>> +            e.printStackTrace(new PrintWriter(w));
>>>> +        }
>>>> +    }
>>>> +
>>>> +    void printSQL(String header, String sql) {
>>>> +        System.err.println(header);
>>>> +        System.err.println(sql);
>>>> +    }
>>>> +
>>>> +    void printSQL(String header, List<String> sqls) {
>>>> +        System.err.println(header);
>>>> +        for (int i = 0; sqls != null && i < sqls.size(); i++) {
>>>> +            System.err.println(i + ":" + sqls.get(i));
>>>> +        }
>>>> +    }
>>>> +
>>>> +    void setParameters(Query q, String[] paramNames, Object[] params) {
>>>> +        for (int i = 0; paramNames != null && i < paramNames.length;
>>>> i++)
>>>> +            q.setParameter(paramNames[i], params[i]);
>>>> +    }
>>>> +
>>>> +    void setParameters(Query q, Object[] params) {
>>>> +        for (int i = 0; params != null && i < params.length; i++)
>>>> +            q.setParameter(i + 1, params[i]);
>>>> +    }
>>>> +
>>>> +    /**
>>>> +     * Execute the given query and return the generated SQL. If the
>>>> query execution fail because the generated SQL is
>>>> +     * ill-formed, then raised exception should carry the ill-formed
>>>> SQL for diagnosis.
>>>> +     */
>>>> +    List<String> executeQueryAndCollectSQL(Query q) {
>>>> +        getAuditor().clear();
>>>> +        try {
>>>> +            List<?> result = q.getResultList();
>>>> +        } catch (Exception e) {
>>>> +            throw new RuntimeException(extractSQL(e), e);
>>>> +        }
>>>> +        assertFalse(getAuditor().getSQLs().isEmpty());
>>>> +        return getAuditor().getSQLs();
>>>> +    }
>>>> +
>>>> +    void executeAndCompareSQL(CriteriaQuery<?> q, String expectedSQL) {
>>>> +        executeAndCompareSQL(getEntityManager().createQuery(q),
>>>> expectedSQL);
>>>> +    }
>>>> +
>>>> +    String extractSQL(Exception e) {
>>>> +        Throwable t = e.getCause();
>>>> +        if (t instanceof ReportingSQLException)
>>>> +            return ((ReportingSQLException) t).getSQL();
>>>> +        return "Can not extract SQL from exception " + e;
>>>> +    }
>>>> +
>>>> +    @Override
>>>> +    public void runBare() throws Throwable {
>>>> +        try {
>>>> +            super.runBare();
>>>> +        } catch (Throwable t) {
>>>> +            AllowFailure allowFailure = getAllowFailure();
>>>> +            if (allowFailure != null && allowFailure.value()) {
>>>> +                System.err.println("*** FAILED (but ignored): " +
>>>> this);
>>>> +                System.err.println("***              Reason : " +
>>>> allowFailure.message());
>>>> +                System.err.println("Stacktrace of failure");
>>>> +                t.printStackTrace();
>>>> +            } else {
>>>> +                throw t;
>>>> +            }
>>>> +        }
>>>> +    }
>>>> +
>>>> +    /**
>>>> +     * Affirms if the test case or the test method is annotated with
>>>> +     * +     * @AllowFailure. Method level annotation has higher
>>>> precedence than Class level annotation.
>>>> +     * +     *                Set -DIgnoreAllowFailure=true to ignore
>>>> this directive altogether.
>>>> +     */
>>>> +    protected AllowFailure getAllowFailure() {
>>>> +        if (Boolean.getBoolean("IgnoreAllowFailure"))
>>>> +            return null;
>>>> +        try {
>>>> +            Method runMethod = getClass().getMethod(getName(),
>>>> (Class[]) null);
>>>> +            AllowFailure anno =
>>>> runMethod.getAnnotation(AllowFailure.class);
>>>> +            if (anno != null)
>>>> +                return anno;
>>>> +        } catch (SecurityException e) {
>>>> +            // ignore
>>>> +        } catch (NoSuchMethodException e) {
>>>> +            // ignore
>>>> +        }
>>>> +        return getClass().getAnnotation(AllowFailure.class);
>>>> +    }
>>>> +
>>>> +    public class SQLAuditor extends AbstractJDBCListener {
>>>> +        private List<String> sqls = new ArrayList<String>();
>>>> +
>>>> +        @Override
>>>> +        public void beforeExecuteStatement(JDBCEvent event) {
>>>> +            if (event.getSQL() != null && sqls != null) {
>>>> +                System.err.println("Adding " + event.getSQL());
>>>> +                sqls.add(event.getSQL());
>>>> +            }
>>>> +        }
>>>> +
>>>> +        void clear() {
>>>> +            sqls.clear();
>>>> +        }
>>>> +
>>>> +        List<String> getSQLs() {
>>>> +            return new ArrayList<String>(sqls);
>>>> +        }
>>>> +    }
>>>> +}
>>>>
>>>> Propchange:
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/AbstractCriteriaTestCase.java
>>>>
>>>> ------------------------------------------------------------------------------
>>>>    svn:eol-style = native
>>>>
>>>> Modified:
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/CriteriaTest.java
>>>> URL:
>>>> http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/CriteriaTest.java?rev=800847&r1=800846&r2=800847&view=diff
>>>>
>>>> ==============================================================================
>>>> ---
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/CriteriaTest.java
>>>> (original)
>>>> +++
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/CriteriaTest.java
>>>> Tue Aug  4 15:36:18 2009
>>>> @@ -18,442 +18,76 @@
>>>>  */
>>>>  package org.apache.openjpa.persistence.criteria;
>>>>  -import java.io.PrintWriter;
>>>> -import java.io.StringWriter;
>>>> -import java.lang.reflect.Method;
>>>> -import java.util.ArrayList;
>>>> -import java.util.Collections;
>>>> -import java.util.HashMap;
>>>> -import java.util.List;
>>>> -import java.util.Map;
>>>> -
>>>>  import javax.persistence.EntityManager;
>>>> -import javax.persistence.Persistence;
>>>> -import javax.persistence.PersistenceException;
>>>> -import javax.persistence.Query;
>>>> -import javax.persistence.criteria.CriteriaQuery;
>>>> -import javax.persistence.criteria.QueryBuilder;
>>>> -
>>>> -import junit.framework.TestCase;
>>>> -
>>>> -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.lib.jdbc.AbstractJDBCListener;
>>>> -import org.apache.openjpa.lib.jdbc.JDBCEvent;
>>>> -import org.apache.openjpa.lib.jdbc.JDBCListener;
>>>> -import org.apache.openjpa.lib.jdbc.ReportingSQLException;
>>>> -import org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI;
>>>> -import org.apache.openjpa.persistence.OpenJPAPersistence;
>>>> -import org.apache.openjpa.persistence.test.AllowFailure;
>>>>  +import org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI;
>>>>   /**
>>>> - * Generic utility to run Criteria tests. + * Generic utility to run
>>>> Criteria tests.
>>>>  * - * Provides facility to compare the target SQL generated by good old
>>>> JPQL
>>>> - * and newly minted Criteria.
>>>> + * Provides facility to compare the target SQL generated by good old
>>>> JPQL and newly minted Criteria.
>>>>  *  */
>>>> -public abstract class CriteriaTest extends TestCase {
>>>> +public abstract class CriteriaTest extends AbstractCriteriaTestCase {
>>>>     protected static OpenJPAEntityManagerFactorySPI emf;
>>>>     protected static SQLAuditor auditor;
>>>> -    +
>>>>     protected CriteriaBuilder cb;
>>>>     protected EntityManager em;
>>>> -    -    protected static Class[] CLASSES = {
>>>> -            Account.class,
>>>> -            Address.class,
>>>> -            A.class,
>>>> -            B.class,
>>>> -            CompUser.class,
>>>> -            Contact.class,
>>>> -            Contractor.class,
>>>> -            Course.class,
>>>> -            CreditCard.class,
>>>> -            Customer.class,
>>>> -            C.class,
>>>> -            Department.class,
>>>> -            DependentId.class,
>>>> -            Dependent.class,
>>>> -            D.class,
>>>> -            Employee.class,
>>>> -            Exempt.class,
>>>> -            FemaleUser.class,
>>>> -            FrequentFlierPlan.class,
>>>> -            Item.class,
>>>> -            LineItem.class,
>>>> -            Magazine.class,
>>>> -            MaleUser.class,
>>>> -            Manager.class,
>>>> -            Movie.class,
>>>> -            Order.class,
>>>> -            Person.class,
>>>> -            Phone.class,
>>>> -            Photo.class,
>>>> -            Product.class,
>>>> -            Publisher.class,
>>>> -            Request.class,
>>>> -            Semester.class,
>>>> -            Student.class,
>>>> -            TransactionHistory.class,
>>>> -            Transaction.class,
>>>> -            VideoStore.class,
>>>> -    };
>>>> -    -    protected Class[] getDomainClasses() {
>>>> +
>>>> +    protected static Class<?>[] CLASSES =
>>>> +        { Account.class, Address.class, A.class, B.class,
>>>> CompUser.class, Contact.class, Contractor.class,
>>>> +            Course.class, CreditCard.class, Customer.class, C.class,
>>>> Department.class, DependentId.class,
>>>> +            Dependent.class, D.class, Employee.class, Exempt.class,
>>>> FemaleUser.class, FrequentFlierPlan.class,
>>>> +            Item.class, LineItem.class, Magazine.class, MaleUser.class,
>>>> Manager.class, Movie.class, Order.class,
>>>> +            Person.class, Phone.class, Photo.class, Product.class,
>>>> Publisher.class, Request.class, Semester.class,
>>>> +            Student.class, TransactionHistory.class, Transaction.class,
>>>> VideoStore.class, };
>>>> +
>>>> +    protected Class<?>[] getDomainClasses() {
>>>>         return CLASSES;
>>>>     }
>>>> -    +
>>>>     public void setUp() {
>>>> -        if (emf == null) {
>>>> +        if (getEntityManagerFactory() == null) {
>>>>             auditor = new SQLAuditor();
>>>> -            createNamedEMF(getDomainClasses());
>>>> -            assertNotNull(emf);
>>>> +
>>>>  setEntityManagerFactory(createNamedEMF(getDomainClasses()));
>>>> +            assertNotNull(getEntityManagerFactory());
>>>>             setDictionary();
>>>>         }
>>>> -        em = emf.createEntityManager();
>>>> -        cb = emf.getQueryBuilder();
>>>> -    }
>>>> -    -    /**
>>>> -     * Create an entity manager factory for persistence unit
>>>> <code>pu</code>.
>>>> -     * Put {@link #CLEAR_TABLES} in
>>>> -     * this list to tell the test framework to delete all table
>>>> contents
>>>> -     * before running the tests.
>>>> -     *
>>>> -     * @param props list of persistent types used in testing and/or
>>>> -     * configuration values in the form key,value,key,value...
>>>> -     */
>>>> -    protected void createNamedEMF(Class<?>... types) {
>>>> -        Map<Object,Object> map = new HashMap<Object,Object>();
>>>> -        map.put("openjpa.jdbc.SynchronizeMappings",
>>>> -                "buildSchema(ForeignKeys=true," -              +
>>>> "SchemaAction='add')");
>>>> -        map.put("openjpa.jdbc.QuerySQLCache", "false");
>>>> -        map.put("openjpa.DynamicEnhancementAgent", "false");
>>>> -        map.put("openjpa.RuntimeUnenhancedClasses", "unsupported");
>>>> -        map.put("openjpa.Compatibility",
>>>> "QuotedNumbersInQueries=true");
>>>> -        map.put("openjpa.jdbc.JDBCListeners", new JDBCListener[] {
>>>> auditor });
>>>> -        -            StringBuffer buf = new StringBuffer();
>>>> -            for (Class<?> c : types) {
>>>> -                if (buf.length() > 0)
>>>> -                    buf.append(";");
>>>> -                buf.append(c.getName());
>>>> -            }
>>>> -           -            map.put("openjpa.MetaDataFactory", "jpa(Types="
>>>> + buf.toString() + ")");
>>>> -        -            Map<Object,Object> config = new
>>>> HashMap<Object,Object>(System.getProperties());
>>>> -            config.putAll(map);
>>>> -            emf = (OpenJPAEntityManagerFactorySPI)
>>>> Persistence.createEntityManagerFactory("test", config);
>>>> -    }
>>>> -
>>>> -    void setDictionary() {
>>>> -        JDBCConfiguration conf = (JDBCConfiguration)
>>>> emf.getConfiguration();
>>>> -        DBDictionary dict = conf.getDBDictionaryInstance();
>>>> -        dict.requiresCastForComparisons = false;
>>>> -        dict.requiresCastForMathFunctions = false;
>>>> +        em = getEntityManagerFactory().createEntityManager();
>>>> +        cb = getEntityManagerFactory().getQueryBuilder();
>>>>     }
>>>>  -    /**
>>>> -     * Executes the given CriteriaQuery and JPQL string and compare
>>>> their respective SQLs for equality.
>>>> -     */
>>>> -    void assertEquivalence(CriteriaQuery<?> c, String jpql) {
>>>> -        assertEquivalence(c, jpql, null);
>>>> -    }
>>>> -    -    /**
>>>> -     * Executes the given CriteriaQuery and JPQL string and compare
>>>> their respective SQLs for equality.
>>>> -     * Sets the supplied parameters, if any.
>>>> -     */
>>>> -    void assertEquivalence(CriteriaQuery<?> c, String jpql, String[]
>>>> paramNames,  Object[] params) {
>>>> -        Query cQ = em.createQuery(c);
>>>> -        Query jQ = em.createQuery(jpql);
>>>> -        setParameters(cQ, paramNames, params);
>>>> -        setParameters(jQ, paramNames, params);
>>>> -        -        executeAndCompareSQL(jpql, cQ, jQ);
>>>> -    }
>>>> -
>>>> -    /**
>>>> -     * Executes the given CriteriaQuery and JPQL string and compare
>>>> their respective SQLs for equality.
>>>> -     */
>>>> -
>>>> -    void assertEquivalence(CriteriaQuery<?> c, String jpql, Object[]
>>>> params) {
>>>> -        Query cQ = em.createQuery(c);
>>>> -        Query jQ = em.createQuery(jpql);
>>>> -        setParameters(cQ, params);
>>>> -        setParameters(jQ, params);
>>>> -        -        executeAndCompareSQL(jpql, cQ, jQ);
>>>> -    }
>>>> -
>>>> -    /**
>>>> -     * Execute the two given queries. The first query originated from a
>>>> JPQL
>>>> -     * string must be well-formed. The second query originated from a
>>>> Criteria
>>>> -     * is being tested.
>>>> -     * -     * @param sqls The target SQL for the queries will be
>>>> filled-in the given
>>>> -     *            array.
>>>> -     * @return true if both queries execute successfully.
>>>> -     */
>>>> -    void executeAndCompareSQL(String jpql, Query cQ, Query jQ) {
>>>> -        List<String> jSQL = null;
>>>> -        List<String> cSQL = null;
>>>> -        try {
>>>> -            jSQL = executeQueryAndCollectSQL(jQ);
>>>> -        } catch (Exception e) {
>>>> -            StringWriter w = new StringWriter();
>>>> -            e.printStackTrace(new PrintWriter(w));
>>>> -            fail("JPQL " + jpql + " failed to execute\r\n" + w);
>>>> -        }
>>>> -        em.clear();
>>>> -        try {
>>>> -            cSQL = executeQueryAndCollectSQL(cQ);
>>>> -        } catch (Exception e) {
>>>> -            StringWriter w = new StringWriter();
>>>> -            e.printStackTrace(new PrintWriter(w));
>>>> -            fail("CriteriaQuery corresponding to " + jpql + " failed to
>>>> execute\r\n" + w);
>>>> -        }
>>>> -        -        printSQL("Target SQL for JPQL", jSQL);
>>>> -        printSQL("Target SQL for CriteriaQuery", cSQL);
>>>> -        if (jSQL.size() != cSQL.size()) {
>>>> -            printSQL("Target SQL for JPQL", jSQL);
>>>> -            printSQL("Target SQL for CriteriaQuery", cSQL);
>>>> -            assertEquals("No. of SQL generated for JPQL and
>>>> CriteriaQuery for " + jpql + " is different", -                 jSQL.size(),
>>>> cSQL.size());
>>>> -        }
>>>> -        -        for (int i = 0; i < jSQL.size(); i++) {
>>>> -            if (!jSQL.get(i).equals(cSQL.get(i))) {
>>>> -                printSQL("Target SQL for JPQL", jSQL);
>>>> -                printSQL("Target SQL for CriteriaQuery", cSQL);
>>>> -                assertEquals(i + "-th SQL for JPQL and CriteriaQuery
>>>> for " + jpql + " is different",
>>>> -                     jSQL.get(i), cSQL.get(i));
>>>> -            }
>>>> -        }
>>>> -    }
>>>> -    -    void executeAndCompareSQL(String jpql, String expectedSQL) {
>>>> -        JDBCConfiguration conf = (JDBCConfiguration)
>>>> emf.getConfiguration();
>>>> -        DBDictionary dict = conf.getDBDictionaryInstance();
>>>> -
>>>> -        Query jQ = em.createQuery(jpql);
>>>> -
>>>> -        List<String> jSQL = null;
>>>> -        try {
>>>> -            jSQL = executeQueryAndCollectSQL(jQ);
>>>> -        } catch (Exception e) {
>>>> -            StringWriter w = new StringWriter();
>>>> -            e.printStackTrace(new PrintWriter(w));
>>>> -            fail("JPQL " + jpql + " failed to execute\r\n" + w);
>>>> -        }
>>>> -        -        printSQL("Target SQL for JPQL", jSQL);
>>>> -        -        if (!(dict instanceof DerbyDictionary))
>>>> -            return;
>>>> -
>>>> -        for (int i = 0; i < jSQL.size(); i++) {
>>>> -            if (!jSQL.get(i).equals(expectedSQL)) {
>>>> -                printSQL("SQL for JPQL", jSQL.get(i));
>>>> -                printSQL("Expected SQL", expectedSQL);
>>>> -                assertEquals(i + "-th Expected SQL and SQL for JPQL: "
>>>> + jpql + " are different",
>>>> -                     expectedSQL, jSQL.get(i));
>>>> -            }
>>>> -        }
>>>> -    }
>>>> -    -    void executeAndCompareSQL(Query jQ, String expectedSQL) {
>>>> -        JDBCConfiguration conf = (JDBCConfiguration)
>>>> emf.getConfiguration();
>>>> -        DBDictionary dict = conf.getDBDictionaryInstance();
>>>> -
>>>> -        List<String> jSQL = null;
>>>> -        try {
>>>> -            jSQL = executeQueryAndCollectSQL(jQ);
>>>> -        } catch (Exception e) {
>>>> -            StringWriter w = new StringWriter();
>>>> -            e.printStackTrace(new PrintWriter(w));
>>>> -        }
>>>> -        -        if (!(dict instanceof DerbyDictionary))
>>>> -            return;
>>>> -
>>>> -        printSQL("Expected SQL", expectedSQL);
>>>> -        String jSql = jSQL.get(0).trim();
>>>> -        if (jSql.indexOf("optimize for 1 row") != -1)
>>>> -            jSql = jSql.substring(0, jSql.indexOf("optimize for 1
>>>> row")).trim();
>>>> -        -        if (!jSql.equals(expectedSQL)) {
>>>> -            printSQL("SQL for JPQL", jSql);
>>>> -            assertEquals(expectedSQL, jSql);
>>>> -        }
>>>> +    protected OpenJPAEntityManagerFactorySPI getEntityManagerFactory()
>>>> {
>>>> +        return emf;
>>>>     }
>>>>  -    void executeExpectFail(CriteriaQuery<?> c, String jpql) {
>>>> -        List<String> cSQL = null;
>>>> -        StringWriter w = new StringWriter();
>>>> -        try {
>>>> -            Query cQ = em.createQuery(c);
>>>> -            cSQL = executeQueryAndCollectSQL(cQ);
>>>> -            fail("CriteriaQuery corresponding to " + jpql + " is
>>>> expected to fail\r\n" + w);
>>>> -        } catch (Exception e) {
>>>> -            e.printStackTrace(new PrintWriter(w));
>>>> -        }
>>>> +    protected void
>>>> setEntityManagerFactory(OpenJPAEntityManagerFactorySPI emf) {
>>>> +        CriteriaTest.emf = emf;
>>>>     }
>>>>     -    void executeExpectFail(CriteriaQuery<?> c, String jpql,
>>>> String[] paramNames, Object[] params) {
>>>> -        List<String> cSQL = null;
>>>> -        StringWriter w = new StringWriter();
>>>> -        try {
>>>> -            Query cQ = em.createQuery(c);
>>>> -            for (int i = 0; i < params.length; i++)
>>>> -                cQ.setParameter(paramNames[i], params[i]);
>>>> -            cSQL = executeQueryAndCollectSQL(cQ);
>>>> -            fail("CriteriaQuery corresponding to " + jpql + " is
>>>> expected to fail\r\n" + w);
>>>> -        } catch (Exception e) {
>>>> -            e.printStackTrace(new PrintWriter(w));
>>>> -        }
>>>> +    protected SQLAuditor getAuditor() {
>>>> +        return auditor;
>>>>     }
>>>>     -    void executeExpectFail(String jpql) {
>>>> -        List<String> jSQL = null;
>>>> -        StringWriter w = new StringWriter();
>>>> -        try {
>>>> -            Query jQ = em.createQuery(jpql);
>>>> -            jSQL = executeQueryAndCollectSQL(jQ);
>>>> -            fail("JPQL " + jpql + " is expected to Failed to
>>>> execute\r\n" + w);
>>>> -        } catch (Exception e) {
>>>> -            e.printStackTrace(new PrintWriter(w));
>>>> -        }
>>>> +    protected void setAuditor(SQLAuditor auditor) { +
>>>>  CriteriaTest.auditor = auditor;
>>>>     }
>>>>  -    void executeExpectFail(String jpql, String[] paramNames, Object[]
>>>> params) {
>>>> -        List<String> jSQL = null;
>>>> -        StringWriter w = new StringWriter();
>>>> -        try {
>>>> -            Query jQ = em.createQuery(jpql);
>>>> -            for (int i = 0; i < params.length; i++)
>>>> -                jQ.setParameter(paramNames[i], params[i]);
>>>> -            jSQL = executeQueryAndCollectSQL(jQ);
>>>> -            fail("JPQL " + jpql + " is expected to Failed to
>>>> execute\r\n" + w);
>>>> -        } catch (Exception e) {
>>>> -            e.printStackTrace(new PrintWriter(w));
>>>> -        }
>>>> +    protected CriteriaBuilder getCriteriaBuilder() {
>>>> +        return cb;
>>>>     }
>>>>  -    void printSQL(String header, String sql) {
>>>> -        System.err.println(header);
>>>> -        System.err.println(sql);
>>>> +    protected void setCriteriaBuilder(CriteriaBuilder cb) {
>>>> +        this.cb = cb;
>>>>     }
>>>>  -    void printSQL(String header, List<String> sqls) {
>>>> -        System.err.println(header);
>>>> -        for (int i = 0; sqls != null && i < sqls.size(); i++) {
>>>> -            System.err.println(i + ":" + sqls.get(i));
>>>> -        }
>>>> -    }
>>>> -    -    void setParameters(Query q, String[] paramNames, Object[]
>>>> params) {
>>>> -        for (int i = 0; paramNames != null && i < paramNames.length;
>>>> i++)
>>>> -            q.setParameter(paramNames[i], params[i]);
>>>> -    }
>>>> -    -    void setParameters(Query q, Object[] params) {
>>>> -        for (int i = 0; params != null && i < params.length; i++)
>>>> -            q.setParameter(i+1, params[i]);
>>>> -    }
>>>> -    -    /**
>>>> -     * Execute the given query and return the generated SQL.
>>>> -     * If the query execution fail because the generated SQL is
>>>> ill-formed, then raised exception should
>>>> -     * carry the ill-formed SQL for diagnosis.  -     */
>>>> -    List<String> executeQueryAndCollectSQL(Query q) {
>>>> -        auditor.clear();
>>>> -        try {
>>>> -            List<?> result = q.getResultList();
>>>> -        } catch (Exception e) {
>>>> -            throw new RuntimeException(extractSQL(e), e);
>>>> -        }    -        assertFalse(auditor.getSQLs().isEmpty());
>>>> -        return auditor.getSQLs();
>>>> -    }
>>>> -    -    void executeAndCompareSQL(CriteriaQuery<?> q, String
>>>> expectedSQL) {
>>>> -        executeAndCompareSQL(em.createQuery(q), expectedSQL);
>>>> +    protected EntityManager getEntityManager() {
>>>> +        return em;
>>>>     }
>>>>  -    String extractSQL(Exception e) {
>>>> -        Throwable t = e.getCause();
>>>> -        if (t instanceof ReportingSQLException)
>>>> -            return ((ReportingSQLException) t).getSQL();
>>>> -        return "Can not extract SQL from exception " + e;
>>>> -    }
>>>> -    -    @Override
>>>> -    public void runBare() throws Throwable {
>>>> -        try {
>>>> -            super.runBare();
>>>> -        } catch (Throwable t) {
>>>> -            AllowFailure allowFailure = getAllowFailure();
>>>> -            if ( allowFailure != null && allowFailure.value()) {
>>>> -                System.err.println("*** FAILED (but ignored): " +
>>>> this);
>>>> -                System.err.println("***              Reason : " -
>>>>              + allowFailure.message());
>>>> -                System.err.println("Stacktrace of failure");
>>>> -                t.printStackTrace();
>>>> -            } else {
>>>> -                throw t;
>>>> -            }
>>>> -        }
>>>> -    }
>>>> -    -    /**
>>>> -     * Affirms if the test case or the test method is annotated with -
>>>>     * @AllowFailure. Method level annotation has higher precedence than
>>>> Class
>>>> -     * level annotation.
>>>> -     * -     * Set -DIgnoreAllowFailure=true to ignore this directive
>>>> altogether.
>>>> -     */
>>>> -    protected AllowFailure getAllowFailure() {
>>>> -        if (Boolean.getBoolean("IgnoreAllowFailure"))
>>>> -            return null;
>>>> -        try {
>>>> -            Method runMethod = getClass().getMethod(getName(),
>>>> (Class[])null);
>>>> -            AllowFailure anno =
>>>> runMethod.getAnnotation(AllowFailure.class);
>>>> -            if (anno != null)
>>>> -                return anno;
>>>> -        } catch (SecurityException e) {
>>>> -            //ignore
>>>> -        } catch (NoSuchMethodException e) {
>>>> -            //ignore
>>>> -        }
>>>> -        return getClass().getAnnotation(AllowFailure.class);
>>>> +    protected void setEntityManager(EntityManager em) {
>>>> +        this.em = em;
>>>>     }
>>>> -
>>>>     -    public class SQLAuditor extends AbstractJDBCListener {
>>>> -        private List<String> sqls = new ArrayList<String>();
>>>> -    -        @Override
>>>> -        public void beforeExecuteStatement(JDBCEvent event) {
>>>> -            if (event.getSQL() != null && sqls != null) {
>>>> -                System.err.println("Adding " + event.getSQL());
>>>> -               sqls.add(event.getSQL());
>>>> -            }
>>>> -        }
>>>> -        -        void clear() {
>>>> -            sqls.clear();
>>>> -        }
>>>> -        -        List<String> getSQLs() {
>>>> -            return new ArrayList<String>(sqls);
>>>> -        }
>>>> -    }
>>>>  }
>>>>
>>>> Added:
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/EmbeddableDomainTestCase.java
>>>> URL:
>>>> http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/EmbeddableDomainTestCase.java?rev=800847&view=auto
>>>>
>>>> ==============================================================================
>>>> ---
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/EmbeddableDomainTestCase.java
>>>> (added)
>>>> +++
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/EmbeddableDomainTestCase.java
>>>> Tue Aug  4 15:36:18 2009
>>>> @@ -0,0 +1,125 @@
>>>> +/*
>>>> + * 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.criteria;
>>>> +
>>>> +import javax.persistence.EntityManager;
>>>> +
>>>> +import org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI;
>>>> +import org.apache.openjpa.persistence.embed.Company1;
>>>> +import org.apache.openjpa.persistence.embed.Company2;
>>>> +import org.apache.openjpa.persistence.embed.Department1;
>>>> +import org.apache.openjpa.persistence.embed.Department2;
>>>> +import org.apache.openjpa.persistence.embed.Department3;
>>>> +import org.apache.openjpa.persistence.embed.Division;
>>>> +import org.apache.openjpa.persistence.embed.Embed;
>>>> +import org.apache.openjpa.persistence.embed.Embed_Coll_Embed;
>>>> +import org.apache.openjpa.persistence.embed.Embed_Coll_Integer;
>>>> +import org.apache.openjpa.persistence.embed.Embed_Embed;
>>>> +import org.apache.openjpa.persistence.embed.Embed_Embed_ToMany;
>>>> +import org.apache.openjpa.persistence.embed.Embed_MappedToOne;
>>>> +import org.apache.openjpa.persistence.embed.Embed_ToMany;
>>>> +import org.apache.openjpa.persistence.embed.Embed_ToOne;
>>>> +import org.apache.openjpa.persistence.embed.Employee1;
>>>> +import org.apache.openjpa.persistence.embed.Employee2;
>>>> +import org.apache.openjpa.persistence.embed.Employee3;
>>>> +import org.apache.openjpa.persistence.embed.EmployeeName3;
>>>> +import org.apache.openjpa.persistence.embed.EmployeePK2;
>>>> +import org.apache.openjpa.persistence.embed.EntityA_Coll_Embed_Embed;
>>>> +import org.apache.openjpa.persistence.embed.EntityA_Coll_Embed_ToOne;
>>>> +import org.apache.openjpa.persistence.embed.EntityA_Coll_String;
>>>> +import org.apache.openjpa.persistence.embed.EntityA_Embed_Coll_Embed;
>>>> +import org.apache.openjpa.persistence.embed.EntityA_Embed_Coll_Integer;
>>>> +import org.apache.openjpa.persistence.embed.EntityA_Embed_Embed;
>>>> +import org.apache.openjpa.persistence.embed.EntityA_Embed_Embed_ToMany;
>>>> +import org.apache.openjpa.persistence.embed.EntityA_Embed_MappedToOne;
>>>> +import org.apache.openjpa.persistence.embed.EntityA_Embed_ToMany;
>>>> +import org.apache.openjpa.persistence.embed.EntityA_Embed_ToOne;
>>>> +import org.apache.openjpa.persistence.embed.EntityB1;
>>>> +import org.apache.openjpa.persistence.embed.Item1;
>>>> +import org.apache.openjpa.persistence.embed.Item2;
>>>> +import org.apache.openjpa.persistence.embed.Item3;
>>>> +import org.apache.openjpa.persistence.embed.VicePresident;
>>>> +
>>>> +/**
>>>> + */
>>>> +public abstract class EmbeddableDomainTestCase extends
>>>> AbstractCriteriaTestCase {
>>>> +    protected static OpenJPAEntityManagerFactorySPI emf = null;
>>>> +    protected static SQLAuditor auditor = null;
>>>> +
>>>> +    protected CriteriaBuilder cb;
>>>> +    protected EntityManager em;
>>>> +
>>>> +    protected static Class<?>[] CLASSES =
>>>> +        { Company1.class, Company2.class, Department1.class,
>>>> Department2.class, Department3.class, Division.class,
>>>> +            Embed.class, Embed_Coll_Embed.class,
>>>> Embed_Coll_Integer.class, Embed_Embed.class, Embed_Embed_ToMany.class,
>>>> +            Embed_MappedToOne.class, Embed_ToMany.class,
>>>> Embed_ToOne.class, Employee1.class, Employee2.class,
>>>> +            Employee3.class, EmployeeName3.class, EmployeePK2.class,
>>>> EntityA_Coll_Embed_Embed.class,
>>>> +            EntityA_Coll_Embed_ToOne.class, EntityA_Coll_String.class,
>>>> EntityA_Embed_Coll_Embed.class,
>>>> +            EntityA_Embed_Coll_Integer.class,
>>>> EntityA_Embed_Embed.class, EntityA_Embed_Embed_ToMany.class,
>>>> +            EntityA_Embed_MappedToOne.class,
>>>> EntityA_Embed_ToMany.class, EntityA_Embed_ToOne.class, EntityB1.class,
>>>> +            Item1.class, Item2.class, Item3.class, VicePresident.class
>>>> };
>>>> +
>>>> +    protected Class<?>[] getDomainClasses() {
>>>> +        return CLASSES;
>>>> +    }
>>>> +
>>>> +    public void setUp() {
>>>> +        if (getEntityManagerFactory() == null) {
>>>> +            auditor = new SQLAuditor();
>>>> +
>>>>  setEntityManagerFactory(createNamedEMF(getDomainClasses()));
>>>> +            assertNotNull(getEntityManagerFactory());
>>>> +            setDictionary();
>>>> +        }
>>>> +        em = getEntityManagerFactory().createEntityManager();
>>>> +        cb = getEntityManagerFactory().getQueryBuilder();
>>>> +    }
>>>> +
>>>> +    protected OpenJPAEntityManagerFactorySPI getEntityManagerFactory()
>>>> {
>>>> +        return emf;
>>>> +    }
>>>> +
>>>> +    protected void
>>>> setEntityManagerFactory(OpenJPAEntityManagerFactorySPI emf) {
>>>> +        EmbeddableDomainTestCase.emf = emf;
>>>> +    }
>>>> +
>>>> +    protected SQLAuditor getAuditor() {
>>>> +        return auditor;
>>>> +    }
>>>> +
>>>> +    protected void setAuditor(SQLAuditor auditor) {
>>>> +        EmbeddableDomainTestCase.auditor = auditor;
>>>> +    }
>>>> +
>>>> +    protected CriteriaBuilder getCriteriaBuilder() {
>>>> +        return cb;
>>>> +    }
>>>> +
>>>> +    protected void setCriteriaBuilder(CriteriaBuilder cb) {
>>>> +        this.cb = cb;
>>>> +    }
>>>> +
>>>> +    protected EntityManager getEntityManager() {
>>>> +        return em;
>>>> +    }
>>>> +
>>>> +    protected void setEntityManager(EntityManager em) {
>>>> +        this.em = em;
>>>> +    }
>>>> +
>>>> +}
>>>>
>>>> Propchange:
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/EmbeddableDomainTestCase.java
>>>>
>>>> ------------------------------------------------------------------------------
>>>>    svn:eol-style = native
>>>>
>>>> Added:
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/JoinDomainTestCase.java
>>>> URL:
>>>> http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/JoinDomainTestCase.java?rev=800847&view=auto
>>>>
>>>> ==============================================================================
>>>> ---
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/JoinDomainTestCase.java
>>>> (added)
>>>> +++
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/JoinDomainTestCase.java
>>>> Tue Aug  4 15:36:18 2009
>>>> @@ -0,0 +1,78 @@
>>>> +/*
>>>> + * 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.criteria;
>>>> +
>>>> +import javax.persistence.EntityManager;
>>>> +
>>>> +import org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI;
>>>> +
>>>> +public abstract class JoinDomainTestCase extends
>>>> AbstractCriteriaTestCase {
>>>> +    protected static OpenJPAEntityManagerFactorySPI emf;
>>>> +    protected static SQLAuditor auditor;
>>>> +
>>>> +    protected CriteriaBuilder cb;
>>>> +    protected EntityManager em;
>>>> +
>>>> +    protected Class<?>[] getDomainClasses() {
>>>> +        return new Class[]{A.class,B.class,C.class,D.class};
>>>> +    }
>>>> +
>>>> +    public void setUp() {
>>>> +        if (getEntityManagerFactory() == null) {
>>>> +            auditor = new SQLAuditor();
>>>> +
>>>>  setEntityManagerFactory(createNamedEMF(getDomainClasses()));
>>>> +            assertNotNull(getEntityManagerFactory());
>>>> +            setDictionary();
>>>> +        }
>>>> +        em = getEntityManagerFactory().createEntityManager();
>>>> +        cb = getEntityManagerFactory().getQueryBuilder();
>>>> +    }
>>>> +
>>>> +    protected OpenJPAEntityManagerFactorySPI getEntityManagerFactory()
>>>> {
>>>> +        return emf;
>>>> +    }
>>>> +
>>>> +    protected void
>>>> setEntityManagerFactory(OpenJPAEntityManagerFactorySPI emf) {
>>>> +        JoinDomainTestCase.emf = emf;
>>>> +    }
>>>> +
>>>> +    protected SQLAuditor getAuditor() {
>>>> +        return auditor;
>>>> +    }
>>>> +
>>>> +    protected void setAuditor(SQLAuditor auditor) {
>>>> +        JoinDomainTestCase.auditor = auditor;
>>>> +    }
>>>> +
>>>> +    protected CriteriaBuilder getCriteriaBuilder() {
>>>> +        return cb;
>>>> +    }
>>>> +
>>>> +    protected void setCriteriaBuilder(CriteriaBuilder cb) {
>>>> +        this.cb = cb;
>>>> +    }
>>>> +
>>>> +    protected EntityManager getEntityManager() {
>>>> +        return em;
>>>> +    }
>>>> +
>>>> +    protected void setEntityManager(EntityManager em) {
>>>> +        this.em = em;
>>>> +    }
>>>> +}
>>>>
>>>> Propchange:
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/JoinDomainTestCase.java
>>>>
>>>> ------------------------------------------------------------------------------
>>>>    svn:eol-style = native
>>>>
>>>> Modified:
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestEmbeddableCriteria.java
>>>> URL:
>>>> http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestEmbeddableCriteria.java?rev=800847&r1=800846&r2=800847&view=diff
>>>>
>>>> ==============================================================================
>>>> ---
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestEmbeddableCriteria.java
>>>> (original)
>>>> +++
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestEmbeddableCriteria.java
>>>> Tue Aug  4 15:36:18 2009
>>>> @@ -33,6 +33,7 @@
>>>>  import javax.persistence.criteria.Root;
>>>>  import javax.persistence.criteria.Subquery;
>>>>  +import org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI;
>>>>  import org.apache.openjpa.persistence.embed.Company1;
>>>>  import org.apache.openjpa.persistence.embed.Company1_;
>>>>  import org.apache.openjpa.persistence.embed.Company2;
>>>> @@ -95,49 +96,7 @@
>>>>  import org.apache.openjpa.persistence.test.AllowFailure;
>>>>   -public class TestEmbeddableCriteria extends CriteriaTest {
>>>> -    protected static Class[] CLASSES = {
>>>> -    org.apache.openjpa.persistence.embed.Company1.class,
>>>> -    org.apache.openjpa.persistence.embed.Company2.class,
>>>> -    org.apache.openjpa.persistence.embed.Department1.class,
>>>> -    org.apache.openjpa.persistence.embed.Department2.class,
>>>> -    org.apache.openjpa.persistence.embed.Department3.class,
>>>> -    org.apache.openjpa.persistence.embed.Division.class,
>>>> -    org.apache.openjpa.persistence.embed.Embed.class,
>>>> -    org.apache.openjpa.persistence.embed.Embed_Coll_Embed.class,
>>>> -    org.apache.openjpa.persistence.embed.Embed_Coll_Integer.class,
>>>> -    org.apache.openjpa.persistence.embed.Embed_Embed.class,
>>>> -    org.apache.openjpa.persistence.embed.Embed_Embed_ToMany.class,
>>>> -    org.apache.openjpa.persistence.embed.Embed_MappedToOne.class,
>>>> -    org.apache.openjpa.persistence.embed.Embed_ToMany.class,
>>>> -    org.apache.openjpa.persistence.embed.Embed_ToOne.class,
>>>> -    org.apache.openjpa.persistence.embed.Employee1.class,
>>>> -    org.apache.openjpa.persistence.embed.Employee2.class,
>>>> -    org.apache.openjpa.persistence.embed.Employee3.class,
>>>> -    org.apache.openjpa.persistence.embed.EmployeeName3.class,
>>>> -    org.apache.openjpa.persistence.embed.EmployeePK2.class,
>>>> -
>>>>  org.apache.openjpa.persistence.embed.EntityA_Coll_Embed_Embed.class,
>>>> -
>>>>  org.apache.openjpa.persistence.embed.EntityA_Coll_Embed_ToOne.class,
>>>> -    org.apache.openjpa.persistence.embed.EntityA_Coll_String.class,
>>>> -
>>>>  org.apache.openjpa.persistence.embed.EntityA_Embed_Coll_Embed.class,
>>>> -
>>>>  org.apache.openjpa.persistence.embed.EntityA_Embed_Coll_Integer.class,
>>>> -    org.apache.openjpa.persistence.embed.EntityA_Embed_Embed.class,
>>>> -
>>>>  org.apache.openjpa.persistence.embed.EntityA_Embed_Embed_ToMany.class,
>>>> -
>>>>  org.apache.openjpa.persistence.embed.EntityA_Embed_MappedToOne.class,
>>>> -    org.apache.openjpa.persistence.embed.EntityA_Embed_ToMany.class,
>>>> -    org.apache.openjpa.persistence.embed.EntityA_Embed_ToOne.class,
>>>> -    org.apache.openjpa.persistence.embed.EntityB1.class,
>>>> -    org.apache.openjpa.persistence.embed.Item1.class,
>>>> -    org.apache.openjpa.persistence.embed.Item2.class,
>>>> -    org.apache.openjpa.persistence.embed.Item3.class,
>>>> -    org.apache.openjpa.persistence.embed.VicePresident.class
>>>> -    };       -
>>>> -    @Override
>>>> -    protected Class[] getDomainClasses() {
>>>> -        return CLASSES;
>>>> -    }
>>>> -
>>>> +public class TestEmbeddableCriteria extends EmbeddableDomainTestCase {
>>>>     // can not translate to criteria
>>>>     @AllowFailure
>>>>     public void testEmbeddableQuery1() {
>>>> @@ -1821,5 +1780,5 @@
>>>>         Root<VicePresident> vp = q.from(VicePresident.class);
>>>>         q.select(vp);
>>>>         assertEquivalence(q, jpql);
>>>> -    }        +    }
>>>>  }
>>>>
>>>> Modified:
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJoinCondition.java
>>>> URL:
>>>> http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJoinCondition.java?rev=800847&r1=800846&r2=800847&view=diff
>>>>
>>>> ==============================================================================
>>>> ---
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJoinCondition.java
>>>> (original)
>>>> +++
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestJoinCondition.java
>>>> Tue Aug  4 15:36:18 2009
>>>> @@ -34,11 +34,7 @@
>>>>  * @author Pinaki Poddar
>>>>  *
>>>>  */
>>>> -public class TestJoinCondition extends CriteriaTest {
>>>> -    protected Class[] getDomainClasses() {
>>>> -        return new Class[]{A.class,B.class,C.class,D.class};
>>>> -    }
>>>> -
>>>> +public class TestJoinCondition extends JoinDomainTestCase {
>>>>     public void testSingleAttributeJoinModel() {
>>>>         CriteriaQuery<?> cq = cb.createQuery();
>>>>         Root<A> a = cq.from(A.class);
>>>>
>>>> Modified:
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestMetaModelTypesafeCriteria.java
>>>> URL:
>>>> http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestMetaModelTypesafeCriteria.java?rev=800847&r1=800846&r2=800847&view=diff
>>>>
>>>> ==============================================================================
>>>> ---
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestMetaModelTypesafeCriteria.java
>>>> (original)
>>>> +++
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestMetaModelTypesafeCriteria.java
>>>> Tue Aug  4 15:36:18 2009
>>>> @@ -325,7 +325,7 @@
>>>>              assertEquivalence(q, jpql);      }
>>>> -
>>>> +    @AllowFailure
>>>>     public void testParameters() {
>>>>         String jpql = "SELECT c FROM Customer c Where c.status = :stat";
>>>>         CriteriaQuery<?> q = cb.createQuery();
>>>>
>>>> Modified:
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestStringCriteria.java
>>>> URL:
>>>> http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestStringCriteria.java?rev=800847&r1=800846&r2=800847&view=diff
>>>>
>>>> ==============================================================================
>>>> ---
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestStringCriteria.java
>>>> (original)
>>>> +++
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestStringCriteria.java
>>>> Tue Aug  4 15:36:18 2009
>>>> @@ -206,7 +206,8 @@
>>>>                 assertEquivalence(q, jpql);      }
>>>> -
>>>> +      +    @AllowFailure
>>>>     public void testParameters() {
>>>>         String jpql = "SELECT c FROM Customer c Where c.status = :stat";
>>>>         CriteriaQuery<Customer> q = cb.createQuery(Customer.class);
>>>>
>>>> Modified:
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestTypeSafeCondExpression.java
>>>> URL:
>>>> http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestTypeSafeCondExpression.java?rev=800847&r1=800846&r2=800847&view=diff
>>>>
>>>> ==============================================================================
>>>> ---
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestTypeSafeCondExpression.java
>>>> (original)
>>>> +++
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestTypeSafeCondExpression.java
>>>> Tue Aug  4 15:36:18 2009
>>>> @@ -154,6 +154,7 @@
>>>>         assertEquivalence(cq, jpql);
>>>>     }
>>>>     +    @AllowFailure
>>>>     public void testLikeWithEscapeCharacter() {
>>>>         String query = "SELECT o.name FROM CompUser o WHERE o.name LIKE
>>>> :name ESCAPE '|'";
>>>>         @@ -490,6 +491,7 @@
>>>>         assertEquivalence(q, query);
>>>>     }
>>>>  +    @AllowFailure
>>>>     public void testTypeExpression1() {
>>>>         String jpql = "SELECT e FROM CompUser e where TYPE(e) in (:a,
>>>> :b) ORDER By e.name";
>>>>         @@ -505,7 +507,7 @@
>>>>              new Class[]{MaleUser.class,FemaleUser.class});
>>>>     }
>>>>  -    +    @AllowFailure
>>>>     public void testTypeExpression2() {
>>>>         String query = "SELECT TYPE(e) FROM CompUser e where TYPE(e) <>
>>>> :t";
>>>>
>>>> Modified:
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestTypesafeCriteria.java
>>>> URL:
>>>> http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestTypesafeCriteria.java?rev=800847&r1=800846&r2=800847&view=diff
>>>>
>>>> ==============================================================================
>>>> ---
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestTypesafeCriteria.java
>>>> (original)
>>>> +++
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/criteria/TestTypesafeCriteria.java
>>>> Tue Aug  4 15:36:18 2009
>>>> @@ -48,13 +48,13 @@
>>>>  *  */
>>>>  public class TestTypesafeCriteria extends CriteriaTest {
>>>> -    +    @AllowFailure
>>>>     public void testTrue() {
>>>>         CriteriaQuery<Person> q = cb.createQuery(Person.class);
>>>>         q.from(Person.class);
>>>>         assertEquivalence(q.where(cb.literal(Boolean.TRUE)), "SELECT p
>>>> FROM Person p WHERE 1=1");
>>>>     }
>>>> -    +    @AllowFailure
>>>>     public void testFalse() {
>>>>         CriteriaQuery<Person> q = cb.createQuery(Person.class);
>>>>         q.from(Person.class);
>>>> @@ -503,7 +503,7 @@
>>>>           assertEquivalence(q, jpql);
>>>>     }
>>>> -
>>>> +    @AllowFailure
>>>>     public void testParameters1() {
>>>>         String jpql = "SELECT c FROM Customer c Where c.status = :stat";
>>>>         @@ -514,7 +514,7 @@
>>>>           assertEquivalence(q, jpql, new String[] { "stat" }, new
>>>> Object[] { 1 });
>>>>     }
>>>> -
>>>> +    @AllowFailure
>>>>     public void testParameters2() {
>>>>         String jpql = "SELECT c FROM Customer c Where c.status = :stat
>>>> AND c.name = :name";
>>>>         @@ -528,7 +528,7 @@
>>>>         assertEquivalence(q, jpql, new String[] { "stat", "name" },
>>>>                 new Object[] { 1, "test" });
>>>>     }
>>>> -
>>>> +    @AllowFailure
>>>>     public void testParameters3() {
>>>>         String jpql = "SELECT c FROM Customer c Where c.status = :stat";
>>>>  @@ -539,7 +539,7 @@
>>>>                 assertEquivalence(q, jpql, new String[]{"stat"}, new
>>>> Object[] { 1 });
>>>>     }
>>>> -
>>>> +    @AllowFailure
>>>>     public void testParameters4() {
>>>>         String jpql = "SELECT c FROM Customer c Where c.status = :stat
>>>> AND c.name = :name";
>>>>         @@ -552,7 +552,7 @@
>>>>         assertEquivalence(q, jpql, new String[]{"stat", "name"},
>>>>                 new Object[] { 1, "test" });
>>>>     }
>>>> -    +    @AllowFailure
>>>>     public void testParameters5() {
>>>>         String jpql = "SELECT c FROM Customer c Where c.status IN
>>>> (:coll)";
>>>>         @@ -818,6 +818,7 @@
>>>>     /**
>>>>      * 0-arg function works only if there is a other projection items to
>>>> determine the table to select from.      */
>>>> +    @AllowFailure
>>>>     public void testFunctionWithNoArgument() {
>>>>         String jpql = "SELECT c.balanceOwed FROM Customer c";
>>>>         String sql = "SELECT CURRENT_USER(), t0.balanceOwed FROM CR_CUST
>>>> t0";
>>>>
>>>> Modified:
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/embed/Item1.java
>>>> URL:
>>>> http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/embed/Item1.java?rev=800847&r1=800846&r2=800847&view=diff
>>>>
>>>> ==============================================================================
>>>> ---
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/embed/Item1.java
>>>> (original)
>>>> +++
>>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/embed/Item1.java
>>>> Tue Aug  4 15:36:18 2009
>>>> @@ -24,6 +24,7 @@
>>>>  import javax.persistence.*;
>>>>   @Entity
>>>> +@Table(name="CR_EMBED_ITEM")
>>>>  public class Item1 {
>>>>     @Id
>>>>     int id;
>>>>
>>>>
>>>>
>>>>
>>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message