You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by mi...@apache.org on 2010/10/08 22:32:21 UTC

svn commit: r1006010 - in /openjpa/trunk: openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/ openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/ openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/

Author: mikedd
Date: Fri Oct  8 20:32:21 2010
New Revision: 1006010

URL: http://svn.apache.org/viewvc?rev=1006010&view=rev
Log:
Filter connection setup SQL from SybaseDictionary.decorate when running unit tests. 

Added:
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/FilteringJDBCListener.java   (with props)
Modified:
    openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SybaseDictionary.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/AbstractCacheModeTestCase.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestCacheModeAll.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestCacheModeDisableSelective.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestCacheModeEmpty.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestCacheModeEnableSelective.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestCacheModeNone.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestCacheModeUnspecified.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestPropertyCacheModeAll.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestPropertyCacheModeDisableSelective.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestPropertyCacheModeEnableSelective.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestPropertyCacheModeNone.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestPropertyCacheModeUnspecified.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/SQLListenerTestCase.java

Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SybaseDictionary.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SybaseDictionary.java?rev=1006010&r1=1006009&r2=1006010&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SybaseDictionary.java (original)
+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/SybaseDictionary.java Fri Oct  8 20:32:21 2010
@@ -67,6 +67,9 @@ public class SybaseDictionary
 
     private static Constructor<SybaseConnection> sybaseConnectionImpl;
     
+    public static String RIGHT_TRUNCATION_ON_SQL = "set string_rtruncation on";
+    public static String NUMERIC_TRUNCATION_OFF_SQL = "set arithabort numeric_truncation off";
+    
     static {
         try {
             sybaseConnectionImpl = ConcreteClassGenerator.getConcreteConstructor(SybaseConnection.class, 
@@ -163,6 +166,7 @@ public class SybaseDictionary
         supportsNullUpdateAction = false;
         supportsDefaultUpdateAction = false;
         supportsCascadeUpdateAction = false;
+        
     }
 
     @Override
@@ -311,13 +315,20 @@ public class SybaseDictionary
     public Connection decorate(Connection conn)
         throws SQLException {
         conn = super.decorate(conn);
+        Connection savedConn = conn;
+        
+//        if(ignoreConnectionSetup) { 
+//            if(conn instanceof DelegatingConnection) { 
+//                conn = ((DelegatingConnection)conn).getInnermostDelegate();
+//            }
+//        }
+        
         // In order for Sybase to raise the truncation exception when the 
         // string length is greater than the column length for Char, VarChar, 
         // Binary, VarBinary, the "set string_rtruncation on" must be executed. 
         // This setting is effective for the duration of current connection.
         if (setStringRightTruncationOn) {
-            String str = "set string_rtruncation on";
-            PreparedStatement stmnt = prepareStatement(conn, str);        
+            PreparedStatement stmnt = prepareStatement(conn, RIGHT_TRUNCATION_ON_SQL);        
             stmnt.execute();
             stmnt.close();
         }
@@ -327,13 +338,13 @@ public class SybaseDictionary
         // precision.  This setting specifies that the operation should not 
         // fail if a numeric truncation occurs.
         if (ignoreNumericTruncation) {
-            String str = "set arithabort numeric_truncation off";
-            PreparedStatement stmnt = prepareStatement(conn, str);        
+            PreparedStatement stmnt = prepareStatement(conn, NUMERIC_TRUNCATION_OFF_SQL);        
             stmnt.execute();
             stmnt.close();            
-        }        
+        }
+        
         
-        return ConcreteClassGenerator.newInstance(sybaseConnectionImpl, conn);
+        return ConcreteClassGenerator.newInstance(sybaseConnectionImpl, savedConn);
     }
     
     /**

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/AbstractCacheModeTestCase.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/AbstractCacheModeTestCase.java?rev=1006010&r1=1006009&r2=1006010&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/AbstractCacheModeTestCase.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/AbstractCacheModeTestCase.java Fri Oct  8 20:32:21 2010
@@ -156,20 +156,6 @@ public abstract class AbstractCacheModeT
         public void run();
     }
 
-    /**
-     * Simple JDBCListener which stores the executed sql in a List. The List is
-     * provided by the getSql() method so that subclasses may use separate
-     * lists.
-     */
-    public class Listener extends AbstractJDBCListener {
-        @Override
-        public void beforeExecuteStatement(JDBCEvent event) {
-            if (event.getSQL() != null && getSql() != null) {
-                getSql().add(event.getSQL());
-            }
-        }
-    }
-
     // =======================================================================
     // Test utilities
     // =======================================================================

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestCacheModeAll.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestCacheModeAll.java?rev=1006010&r1=1006009&r2=1006010&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestCacheModeAll.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestCacheModeAll.java Fri Oct  8 20:32:21 2010
@@ -25,6 +25,7 @@ import javax.persistence.Cache;
 
 import org.apache.openjpa.lib.jdbc.JDBCListener;
 import org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI;
+import org.apache.openjpa.persistence.test.FilteringJDBCListener;
 
 public class TestCacheModeAll extends AbstractCacheModeTestCase {
 
@@ -48,7 +49,7 @@ public class TestCacheModeAll extends Ab
 
     public JDBCListener getListener() {
         if (listener == null) {
-            listener = new Listener();
+            listener = new FilteringJDBCListener(getSql());
         }
         return listener;
     }

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestCacheModeDisableSelective.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestCacheModeDisableSelective.java?rev=1006010&r1=1006009&r2=1006010&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestCacheModeDisableSelective.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestCacheModeDisableSelective.java Fri Oct  8 20:32:21 2010
@@ -31,6 +31,7 @@ import org.apache.openjpa.persistence.ca
 import org.apache.openjpa.persistence.cache.jpa.model.UnspecifiedEntity;
 import org.apache.openjpa.persistence.cache.jpa.model.XmlCacheableEntity;
 import org.apache.openjpa.persistence.cache.jpa.model.XmlUncacheableEntity;
+import org.apache.openjpa.persistence.test.FilteringJDBCListener;
 
 public class TestCacheModeDisableSelective extends AbstractCacheModeTestCase {
 
@@ -56,7 +57,7 @@ public class TestCacheModeDisableSelecti
 
     public JDBCListener getListener() {
         if (listener == null) {
-            listener = new Listener();
+            listener =  new FilteringJDBCListener(getSql());
         }
         return listener;
     }

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestCacheModeEmpty.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestCacheModeEmpty.java?rev=1006010&r1=1006009&r2=1006010&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestCacheModeEmpty.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestCacheModeEmpty.java Fri Oct  8 20:32:21 2010
@@ -25,6 +25,7 @@ import javax.persistence.Cache;
 
 import org.apache.openjpa.lib.jdbc.JDBCListener;
 import org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI;
+import org.apache.openjpa.persistence.test.FilteringJDBCListener;
 
 public class TestCacheModeEmpty extends AbstractCacheModeTestCase {
     
@@ -48,7 +49,7 @@ public class TestCacheModeEmpty extends 
 
     public JDBCListener getListener() {
         if (listener == null) {
-            listener = new Listener();
+            listener =  new FilteringJDBCListener(getSql());
         }
         return listener;
     }

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestCacheModeEnableSelective.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestCacheModeEnableSelective.java?rev=1006010&r1=1006009&r2=1006010&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestCacheModeEnableSelective.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestCacheModeEnableSelective.java Fri Oct  8 20:32:21 2010
@@ -31,6 +31,7 @@ import org.apache.openjpa.persistence.ca
 import org.apache.openjpa.persistence.cache.jpa.model.UnspecifiedEntity;
 import org.apache.openjpa.persistence.cache.jpa.model.XmlCacheableEntity;
 import org.apache.openjpa.persistence.cache.jpa.model.XmlUncacheableEntity;
+import org.apache.openjpa.persistence.test.FilteringJDBCListener;
 
 public class TestCacheModeEnableSelective extends AbstractCacheModeTestCase {
 
@@ -56,7 +57,7 @@ public class TestCacheModeEnableSelectiv
 
     public JDBCListener getListener() {
         if (listener == null) {
-            listener = new Listener();
+            listener = new FilteringJDBCListener(getSql());
         }
         return listener;
     }

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestCacheModeNone.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestCacheModeNone.java?rev=1006010&r1=1006009&r2=1006010&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestCacheModeNone.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestCacheModeNone.java Fri Oct  8 20:32:21 2010
@@ -25,6 +25,7 @@ import javax.persistence.Cache;
 
 import org.apache.openjpa.lib.jdbc.JDBCListener;
 import org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI;
+import org.apache.openjpa.persistence.test.FilteringJDBCListener;
 
 public class TestCacheModeNone extends AbstractCacheModeTestCase {
 
@@ -48,7 +49,7 @@ public class TestCacheModeNone extends A
 
     public JDBCListener getListener() {
         if (listener == null) {
-            listener = new Listener();
+            listener = new FilteringJDBCListener(getSql());
         }
         return listener;
     }

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestCacheModeUnspecified.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestCacheModeUnspecified.java?rev=1006010&r1=1006009&r2=1006010&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestCacheModeUnspecified.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestCacheModeUnspecified.java Fri Oct  8 20:32:21 2010
@@ -25,6 +25,7 @@ import javax.persistence.Cache;
 
 import org.apache.openjpa.lib.jdbc.JDBCListener;
 import org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI;
+import org.apache.openjpa.persistence.test.FilteringJDBCListener;
 
 public class TestCacheModeUnspecified extends AbstractCacheModeTestCase {
 
@@ -48,7 +49,7 @@ public class TestCacheModeUnspecified ex
 
     public JDBCListener getListener() {
         if (listener == null) {
-            listener = new Listener();
+            listener = new FilteringJDBCListener(getSql());
         }
         return listener;
     }

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestPropertyCacheModeAll.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestPropertyCacheModeAll.java?rev=1006010&r1=1006009&r2=1006010&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestPropertyCacheModeAll.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestPropertyCacheModeAll.java Fri Oct  8 20:32:21 2010
@@ -27,6 +27,7 @@ import javax.persistence.Cache;
 
 import org.apache.openjpa.lib.jdbc.JDBCListener;
 import org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI;
+import org.apache.openjpa.persistence.test.FilteringJDBCListener;
 
 public class TestPropertyCacheModeAll extends AbstractCacheModeTestCase {
 
@@ -52,7 +53,7 @@ public class TestPropertyCacheModeAll ex
 
     public JDBCListener getListener() {
         if (listener == null) {
-            listener = new Listener();
+            listener = new FilteringJDBCListener(getSql());
         }
         return listener;
     }

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestPropertyCacheModeDisableSelective.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestPropertyCacheModeDisableSelective.java?rev=1006010&r1=1006009&r2=1006010&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestPropertyCacheModeDisableSelective.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestPropertyCacheModeDisableSelective.java Fri Oct  8 20:32:21 2010
@@ -33,6 +33,7 @@ import org.apache.openjpa.persistence.ca
 import org.apache.openjpa.persistence.cache.jpa.model.UnspecifiedEntity;
 import org.apache.openjpa.persistence.cache.jpa.model.XmlCacheableEntity;
 import org.apache.openjpa.persistence.cache.jpa.model.XmlUncacheableEntity;
+import org.apache.openjpa.persistence.test.FilteringJDBCListener;
 
 public class TestPropertyCacheModeDisableSelective extends AbstractCacheModeTestCase {
 
@@ -60,7 +61,7 @@ public class TestPropertyCacheModeDisabl
 
     public JDBCListener getListener() {
         if (listener == null) {
-            listener = new Listener();
+            listener = new FilteringJDBCListener(getSql());
         }
         return listener;
     }

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestPropertyCacheModeEnableSelective.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestPropertyCacheModeEnableSelective.java?rev=1006010&r1=1006009&r2=1006010&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestPropertyCacheModeEnableSelective.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestPropertyCacheModeEnableSelective.java Fri Oct  8 20:32:21 2010
@@ -33,6 +33,7 @@ import org.apache.openjpa.persistence.ca
 import org.apache.openjpa.persistence.cache.jpa.model.UnspecifiedEntity;
 import org.apache.openjpa.persistence.cache.jpa.model.XmlCacheableEntity;
 import org.apache.openjpa.persistence.cache.jpa.model.XmlUncacheableEntity;
+import org.apache.openjpa.persistence.test.FilteringJDBCListener;
 
 public class TestPropertyCacheModeEnableSelective extends AbstractCacheModeTestCase {
 
@@ -60,7 +61,7 @@ public class TestPropertyCacheModeEnable
 
     public JDBCListener getListener() {
         if (listener == null) {
-            listener = new Listener();
+            listener = new FilteringJDBCListener(getSql());
         }
         return listener;
     }

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestPropertyCacheModeNone.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestPropertyCacheModeNone.java?rev=1006010&r1=1006009&r2=1006010&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestPropertyCacheModeNone.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestPropertyCacheModeNone.java Fri Oct  8 20:32:21 2010
@@ -27,6 +27,7 @@ import javax.persistence.Cache;
 
 import org.apache.openjpa.lib.jdbc.JDBCListener;
 import org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI;
+import org.apache.openjpa.persistence.test.FilteringJDBCListener;
 
 public class TestPropertyCacheModeNone extends AbstractCacheModeTestCase {
 
@@ -52,7 +53,7 @@ public class TestPropertyCacheModeNone e
 
     public JDBCListener getListener() {
         if (listener == null) {
-            listener = new Listener();
+            listener = new FilteringJDBCListener(getSql());
         }
         return listener;
     }

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestPropertyCacheModeUnspecified.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestPropertyCacheModeUnspecified.java?rev=1006010&r1=1006009&r2=1006010&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestPropertyCacheModeUnspecified.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/cache/jpa/TestPropertyCacheModeUnspecified.java Fri Oct  8 20:32:21 2010
@@ -27,6 +27,7 @@ import javax.persistence.Cache;
 
 import org.apache.openjpa.lib.jdbc.JDBCListener;
 import org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI;
+import org.apache.openjpa.persistence.test.FilteringJDBCListener;
 
 public class TestPropertyCacheModeUnspecified extends AbstractCacheModeTestCase {
     
@@ -52,7 +53,7 @@ public class TestPropertyCacheModeUnspec
 
     public JDBCListener getListener() {
         if (listener == null) {
-            listener = new Listener();
+            listener = new FilteringJDBCListener(getSql());
         }
         return listener;
     }

Added: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/FilteringJDBCListener.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/FilteringJDBCListener.java?rev=1006010&view=auto
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/FilteringJDBCListener.java (added)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/FilteringJDBCListener.java Fri Oct  8 20:32:21 2010
@@ -0,0 +1,59 @@
+/*
+ * 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;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.openjpa.jdbc.sql.SybaseDictionary;
+import org.apache.openjpa.lib.jdbc.AbstractJDBCListener;
+import org.apache.openjpa.lib.jdbc.JDBCEvent;
+
+/**
+ * JDBC listener suitable for use by the OpenJPA junit bucket. Some DBDictionaries (e.g. Sybase) generate a lot of
+ * noise during connection setup - making testcases that rely on SQL count or sequences brittle.
+ * 
+ * This JDBC listener removes these noisy sql statements.
+ */
+public class FilteringJDBCListener extends AbstractJDBCListener {
+
+    /**
+     * Set of SQL statements which will be filtered out by this listener.
+     */
+    private Set<String> _ignoredSQL = new HashSet<String>();
+    
+    private List<String> _sqlStatements; 
+
+    public FilteringJDBCListener(List<String> sql) {
+        _sqlStatements = sql;
+        
+        // ignore connection setup SQL for Sybase
+        _ignoredSQL.add(SybaseDictionary.NUMERIC_TRUNCATION_OFF_SQL);
+        _ignoredSQL.add(SybaseDictionary.RIGHT_TRUNCATION_ON_SQL);
+    }
+
+    @Override
+    public void beforeExecuteStatement(JDBCEvent event) {
+        String sql = event.getSQL();
+        if (sql != null && _sqlStatements != null && !_ignoredSQL.contains(sql)) {
+            _sqlStatements.add(sql);
+        }
+    }
+}

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

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/SQLListenerTestCase.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/SQLListenerTestCase.java?rev=1006010&r1=1006009&r2=1006010&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/SQLListenerTestCase.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/SQLListenerTestCase.java Fri Oct  8 20:32:21 2010
@@ -20,8 +20,11 @@ package org.apache.openjpa.persistence.t
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 
+import org.apache.openjpa.jdbc.sql.SybaseDictionary;
 import org.apache.openjpa.lib.jdbc.AbstractJDBCListener;
 import org.apache.openjpa.lib.jdbc.JDBCEvent;
 import org.apache.openjpa.lib.jdbc.JDBCListener;
@@ -41,7 +44,7 @@ public abstract class SQLListenerTestCas
         Object[] copy = new Object[props.length + 2];
         System.arraycopy(props, 0, copy, 0, props.length);
         copy[copy.length - 2] = "openjpa.jdbc.JDBCListeners";
-        copy[copy.length - 1] = new JDBCListener[] { new Listener() };
+        copy[copy.length - 1] = new JDBCListener[] { new FilteringJDBCListener(sql) };
         super.setUp(copy); 
     }
 
@@ -211,17 +214,6 @@ public abstract class SQLListenerTestCas
     	return buf.toString();
     }
 
-    public class Listener
-        extends AbstractJDBCListener {
-
-        @Override
-        public void beforeExecuteStatement(JDBCEvent event) {
-            if (event.getSQL() != null && sql != null) {
-                sql.add(event.getSQL());
-            }
-        }
-    }
-
     public enum SQLAssertType {
         SQL, NotSQL, ContainsSQL, AllSQLInOrder, AllExactSQLInOrder, 
         AllSQLAnyOrder, NoneSQLAnyOrder, AnySQLAnyOrder