You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by ka...@apache.org on 2013/05/14 17:40:25 UTC

svn commit: r1482405 [2/2] - in /db/derby/code/trunk: java/client/ java/client/org/apache/derby/client/ java/client/org/apache/derby/client/am/ java/client/org/apache/derby/client/net/ java/client/org/apache/derby/jdbc/ java/testing/org/apache/derbyTes...

Modified: db/derby/code/trunk/java/client/org/apache/derby/client/net/NetConnection.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/client/org/apache/derby/client/net/NetConnection.java?rev=1482405&r1=1482404&r2=1482405&view=diff
==============================================================================
--- db/derby/code/trunk/java/client/org/apache/derby/client/net/NetConnection.java (original)
+++ db/derby/code/trunk/java/client/org/apache/derby/client/net/NetConnection.java Tue May 14 15:40:24 2013
@@ -25,6 +25,14 @@ import java.io.OutputStream;
 import java.net.SocketTimeoutException;
 import java.nio.ByteBuffer;
 import java.nio.CharBuffer;
+import java.sql.Array;
+import java.sql.NClob;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLClientInfoException;
+import java.sql.SQLException;
+import java.sql.SQLXML;
+import java.sql.Struct;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Properties;
@@ -45,7 +53,9 @@ import org.apache.derby.jdbc.ClientDrive
 import org.apache.derby.client.ClientPooledConnection;
 import org.apache.derby.client.am.Agent;
 import org.apache.derby.client.am.ClientConnection;
+import org.apache.derby.client.am.FailedProperties40;
 import org.apache.derby.client.am.LogWriter;
+import org.apache.derby.client.am.SQLExceptionFactory;
 import org.apache.derby.client.am.Section;
 import org.apache.derby.client.am.SectionManager;
 import org.apache.derby.jdbc.ClientDataSourceInterface;
@@ -169,6 +179,13 @@ public class NetConnection extends Clien
     private List<Xid> indoubtTransactions_ = null;
     protected int currXACallInfoOffset_ = 0;
 
+    /**
+     * Prepared statement that is used each time isValid() is called on this
+     * connection. The statement is created the first time isValid is called
+     * and closed when the connection is closed (by the close call).
+     */
+    private PreparedStatement isValidStmt;
+
     //---------------------constructors/finalizer---------------------------------
 
     NetConnection(NetLogWriter netLogWriter,
@@ -1759,5 +1776,249 @@ public class NetConnection extends Clien
             throws SqlException {
         xares_.netXAConn_.writeTransactionStart(statement);
     }
-}
 
+    // JDBC 4.0 methods
+
+    public Array createArrayOf(String typeName, Object[] elements)
+        throws SQLException {
+        throw SQLExceptionFactory.notImplemented ("createArrayOf(String,Object[])");
+    }
+
+    public NClob createNClob() throws SQLException {
+        throw SQLExceptionFactory.notImplemented ("createNClob ()");
+    }
+
+    public SQLXML createSQLXML() throws SQLException {
+        throw SQLExceptionFactory.notImplemented ("createSQLXML ()");
+    }
+
+    public Struct createStruct(String typeName, Object[] attributes)
+        throws SQLException {
+        throw SQLExceptionFactory.notImplemented ("createStruct(String,Object[])");
+    }
+
+    /**
+     * Checks if the connection has not been closed and is still valid.
+     * The validity is checked by running a simple query against the
+     * database.
+     *
+     * The timeout specified by the caller is implemented as follows:
+     * On the server: uses the queryTimeout functionality to make the
+     * query time out on the server in case the server has problems or
+     * is highly loaded.
+     * On the client: uses a timeout on the socket to make sure that
+     * the client is not blocked forever in the cases where the server
+     * is "hanging" or not sending the reply.
+     *
+     * @param timeout The time in seconds to wait for the database
+     * operation used to validate the connection to complete. If the
+     * timeout period expires before the operation completes, this
+     * method returns false. A value of 0 indicates a timeout is not
+     * applied to the database operation.
+     * @return true if the connection is valid, false otherwise
+     * @exception SQLException if the parameter value is illegal or if a
+     * database error has occurred
+     */
+    public boolean isValid(int timeout) throws SQLException {
+        // Validate that the timeout has a legal value
+        if (timeout < 0) {
+            throw new SqlException(agent_.logWriter_,
+                               new ClientMessageId(SQLState.INVALID_API_PARAMETER),
+                               timeout, "timeout",
+                               "java.sql.Connection.isValid" ).getSQLException();
+        }
+
+        // Check if the connection is closed
+        if (isClosed()) {
+            return false;
+        }
+
+        // Do a simple query against the database
+        synchronized(this) {
+            try {
+                // Save the current network timeout value
+                int oldTimeout = netAgent_.getTimeout();
+
+                // Set the required timeout value on the network connection
+                netAgent_.setTimeout(timeout);
+
+                // If this is the first time this method is called on this
+                // connection we prepare the query
+                if (isValidStmt == null) {
+                    isValidStmt = prepareStatement("VALUES (1)");
+                }
+
+                // Set the query timeout
+                isValidStmt.setQueryTimeout(timeout);
+
+                // Run the query against the database
+                ResultSet rs = isValidStmt.executeQuery();
+                rs.close();
+
+                // Restore the previous timeout value
+                netAgent_.setTimeout(oldTimeout);
+            } catch(SQLException e) {
+                // If an SQL exception is thrown the connection is not valid,
+                // we ignore the exception and return false.
+                return false;
+            }
+     }
+
+        return true;  // The connection is valid
+    }
+
+    /**
+     * Close the connection and release its resources.
+     * @exception SQLException if a database-access error occurs.
+     */
+    synchronized public void close() throws SQLException {
+        // Release resources owned by the prepared statement used by isValid
+        if (isValidStmt != null) {
+            isValidStmt.close();
+            isValidStmt = null;
+        }
+        super.close();
+    }
+
+    /**
+     * <code>setClientInfo</code> will always throw a
+     * <code>SQLClientInfoException</code> since Derby does not support
+     * any properties.
+     *
+     * @param name a property key <code>String</code>
+     * @param value a property value <code>String</code>
+     * @exception SQLException always.
+     */
+    public void setClientInfo(String name, String value)
+    throws SQLClientInfoException{
+        Properties p = FailedProperties40.makeProperties(name,value);
+    try { checkForClosedConnection(); }
+    catch (SqlException se) {
+            throw new SQLClientInfoException
+                (se.getMessage(), se.getSQLState(),
+                        se.getErrorCode(),
+                        new FailedProperties40(p).getProperties());
+        }
+
+        if (name == null && value == null) {
+            return;
+        }
+        setClientInfo(p);
+    }
+
+    /**
+     * <code>setClientInfo</code> will throw a
+     * <code>SQLClientInfoException</code> unless the <code>properties</code>
+     * parameter is empty, since Derby does not support any
+     * properties. All the property keys in the
+     * <code>properties</code> parameter are added to failedProperties
+     * of the exception thrown, with REASON_UNKNOWN_PROPERTY as the
+     * value.
+     *
+     * @param properties a <code>Properties</code> object with the
+     * properties to set.
+     * @exception SQLClientInfoException unless the properties
+     * parameter is null or empty.
+     */
+    public void setClientInfo(Properties properties)
+    throws SQLClientInfoException {
+    FailedProperties40 fp = new FailedProperties40(properties);
+    try { checkForClosedConnection(); }
+    catch (SqlException se) {
+        throw new SQLClientInfoException(se.getMessage(), se.getSQLState(),
+                se.getErrorCode(),
+                fp.getProperties());
+    }
+
+    if (properties == null || properties.isEmpty()) {
+            return;
+        }
+
+    SqlException se =
+        new SqlException(agent_.logWriter_,
+                 new ClientMessageId
+                 (SQLState.PROPERTY_UNSUPPORTED_CHANGE),
+                 fp.getFirstKey(), fp.getFirstValue());
+        throw new SQLClientInfoException(se.getMessage(),
+                se.getSQLState(),
+                se.getErrorCode(),
+                fp.getProperties());
+    }
+
+    /**
+     * <code>getClientInfo</code> always returns a
+     * <code>null String</code> since Derby doesn't support
+     * ClientInfoProperties.
+     *
+     * @param name a <code>String</code> value
+     * @return a <code>null String</code> value
+     * @exception SQLException if the connection is closed.
+     */
+    public String getClientInfo(String name)
+    throws SQLException{
+    try {
+        checkForClosedConnection();
+        return null;
+    }
+    catch (SqlException se) { throw se.getSQLException(); }
+    }
+
+    /**
+     * <code>getClientInfo</code> always returns an empty
+     * <code>Properties</code> object since Derby doesn't support
+     * ClientInfoProperties.
+     *
+     * @return an empty <code>Properties</code> object.
+     * @exception SQLException if the connection is closed.
+     */
+    public Properties getClientInfo()
+    throws SQLException{
+    try {
+        checkForClosedConnection();
+        return new Properties();
+    }
+    catch (SqlException se) { throw se.getSQLException(); }
+    }
+
+    /**
+     * Returns false unless <code>interfaces</code> is implemented
+     *
+     * @param  interfaces             a Class defining an interface.
+     * @return true                   if this implements the interface or
+     *                                directly or indirectly wraps an object
+     *                                that does.
+     * @throws java.sql.SQLException  if an error occurs while determining
+     *                                whether this is a wrapper for an object
+     *                                with the given interface.
+     */
+    public boolean isWrapperFor(Class<?> interfaces) throws SQLException {
+        try {
+            checkForClosedConnection();
+        } catch (SqlException se) {
+            throw se.getSQLException();
+        }
+        return interfaces.isInstance(this);
+    }
+
+    /**
+     * Returns <code>this</code> if this class implements the interface
+     *
+     * @param  interfaces a Class defining an interface
+     * @return an object that implements the interface
+     * @throws java.sql.SQLException if no object if found that implements the
+     * interface
+     */
+    public <T> T unwrap(Class<T> interfaces)
+                                   throws SQLException {
+        try {
+            checkForClosedConnection();
+            return interfaces.cast(this);
+        } catch (ClassCastException cce) {
+            throw new SqlException(null,
+                new ClientMessageId(SQLState.UNABLE_TO_UNWRAP),
+                interfaces).getSQLException();
+        } catch (SqlException se) {
+            throw se.getSQLException();
+        }
+    }
+}

Modified: db/derby/code/trunk/java/client/org/apache/derby/client/net/NetResultSet42.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/client/org/apache/derby/client/net/NetResultSet42.java?rev=1482405&r1=1482404&r2=1482405&view=diff
==============================================================================
--- db/derby/code/trunk/java/client/org/apache/derby/client/net/NetResultSet42.java (original)
+++ db/derby/code/trunk/java/client/org/apache/derby/client/net/NetResultSet42.java Tue May 14 15:40:24 2013
@@ -28,7 +28,7 @@ import org.apache.derby.client.am.SqlExc
 import org.apache.derby.client.am.Utils42;
 
 
-class NetResultSet42 extends NetResultSet40
+class NetResultSet42 extends NetResultSet
 {
     
     NetResultSet42(NetAgent netAgent,

Modified: db/derby/code/trunk/java/client/org/apache/derby/jdbc/ClientDriver.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/client/org/apache/derby/jdbc/ClientDriver.java?rev=1482405&r1=1482404&r2=1482405&view=diff
==============================================================================
--- db/derby/code/trunk/java/client/org/apache/derby/jdbc/ClientDriver.java (original)
+++ db/derby/code/trunk/java/client/org/apache/derby/jdbc/ClientDriver.java Tue May 14 15:40:24 2013
@@ -28,8 +28,10 @@ import java.sql.DriverPropertyInfo;
 import java.util.Enumeration;
 import java.util.Properties;
 import java.sql.SQLException;
+import java.sql.SQLFeatureNotSupportedException;
 import java.util.NoSuchElementException;
 import java.util.StringTokenizer;
+import java.util.logging.Logger;
 import org.apache.derby.client.am.Configuration;
 import org.apache.derby.client.am.SqlException;
 import org.apache.derby.client.am.Utils;
@@ -60,18 +62,7 @@ public class ClientDriver implements Dri
 
     static
     {
-        try {
-            //
-            // We'd rather load this slightly more capable driver.
-            // But if the vm level doesn't support it, then we fall
-            // back on the JDBC3 level driver.
-            //
-            Class.forName( "org.apache.derby.jdbc.ClientDriver40" );
-        }
-        catch (Throwable e)
-        {
-            registerMe( new ClientDriver() );
-        }
+        registerMe(new ClientDriver());
     }
 
     protected static void   registerMe( ClientDriver me )
@@ -295,6 +286,22 @@ public class ClientDriver implements Dri
         return Configuration.jdbcCompliant;
     }
 
+    ////////////////////////////////////////////////////////////////////
+    //
+    // INTRODUCED BY JDBC 4.1 IN JAVA 7
+    //
+    ////////////////////////////////////////////////////////////////////
+
+    public  Logger getParentLogger()
+        throws SQLFeatureNotSupportedException
+    {
+        getFactory();
+        throw (SQLFeatureNotSupportedException)
+            (
+             new SqlException( null, new ClientMessageId(SQLState.NOT_IMPLEMENTED), "getParentLogger" )
+             ).getSQLException();
+    }
+
     // ----------------helper methods---------------------------------------------
 
     // Tokenize one of the following:
@@ -425,7 +432,7 @@ public class ClientDriver implements Dri
      *Currently it returns either
      *ClientJDBCObjectFactoryImpl
      *(or)
-     *ClientJDBCObjectFactoryImpl40
+     *ClientJDBCObjectFactoryImpl42
      */
     
     public static ClientJDBCObjectFactory getFactory() {
@@ -435,8 +442,6 @@ public class ClientDriver implements Dri
             return factoryObject;
         if (Configuration.supportsJDBC42()) {
             factoryObject = createJDBC42FactoryImpl();
-        } else if (Configuration.supportsJDBC40()) {
-            factoryObject = createJDBC40FactoryImpl();
         } else {
             factoryObject = createDefaultFactoryImpl();
         }
@@ -505,6 +510,3 @@ public class ClientDriver implements Dri
     }
 
 }
-
-
-

Modified: db/derby/code/trunk/java/client/org/apache/derby/jdbc/ClientDriver40.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/client/org/apache/derby/jdbc/ClientDriver40.java?rev=1482405&r1=1482404&r2=1482405&view=diff
==============================================================================
--- db/derby/code/trunk/java/client/org/apache/derby/jdbc/ClientDriver40.java (original)
+++ db/derby/code/trunk/java/client/org/apache/derby/jdbc/ClientDriver40.java Tue May 14 15:40:24 2013
@@ -21,38 +21,17 @@
 
 package org.apache.derby.jdbc;
 
-import java.sql.SQLFeatureNotSupportedException;
-import java.util.logging.Logger;
-
-import org.apache.derby.client.am.ClientMessageId;
-import org.apache.derby.client.am.SqlException;
-import org.apache.derby.shared.common.reference.SQLState;
-
 /**
  * <p>
  * Adds driver functionality which is only visible from JDBC 4.0 onward.
  * </p>
+ *
+ * <p>
+ * This class was part of Derby's public API up to Derby 10.10. Even though
+ * it doesn't provide any more functionality than {@code ClientDriver}, it
+ * is preserved for backward compatibility.
+ * </p>
  */
 public class ClientDriver40 extends ClientDriver
 {
-    static
-    {
-        registerMe( new ClientDriver40() );
-    }
-
-    ////////////////////////////////////////////////////////////////////
-    //
-    // INTRODUCED BY JDBC 4.1 IN JAVA 7
-    //
-    ////////////////////////////////////////////////////////////////////
-
-    public  Logger getParentLogger()
-        throws SQLFeatureNotSupportedException
-    {
-        getFactory();
-        throw (SQLFeatureNotSupportedException)
-            (
-             new SqlException( null, new ClientMessageId(SQLState.NOT_IMPLEMENTED), "getParentLogger" )
-             ).getSQLException();
-    }
 }

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/Wrapper41.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/Wrapper41.java?rev=1482405&r1=1482404&r2=1482405&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/Wrapper41.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/Wrapper41.java Tue May 14 15:40:24 2013
@@ -22,13 +22,12 @@
 package org.apache.derbyTesting.functionTests.tests.jdbc4;
 
 import java.sql.SQLException;
-
-import org.apache.derby.impl.jdbc.EmbedResultSet40;
-import org.apache.derby.client.net.NetResultSet40;
-import org.apache.derby.impl.jdbc.EmbedCallableStatement40;
-import org.apache.derby.client.am.ClientCallableStatement40;
+import org.apache.derby.client.am.ClientCallableStatement;
+import org.apache.derby.client.am.ClientResultSet;
+import org.apache.derby.client.am.LogicalCallableStatement;
 import org.apache.derby.iapi.jdbc.BrokeredCallableStatement40;
-import org.apache.derby.client.am.LogicalCallableStatement40;
+import org.apache.derby.impl.jdbc.EmbedCallableStatement40;
+import org.apache.derby.impl.jdbc.EmbedResultSet40;
 
 /**
  * A wrapper around the getObject() overloads added by JDBC 4.1.
@@ -44,11 +43,11 @@ public  class   Wrapper41
     ///////////////////////////////////////////////////////////////////////
 
     private EmbedResultSet40    _embedded;
-    private NetResultSet40      _netclient;
+    private ClientResultSet      _netclient;
     private EmbedCallableStatement40 _embedCallableStatement;
-    private ClientCallableStatement40 _callableStatement;
+    private ClientCallableStatement _callableStatement;
     private BrokeredCallableStatement40 _brokeredCallableStatement;
-    private LogicalCallableStatement40 _logicalCallableStatement;
+    private LogicalCallableStatement _logicalCallableStatement;
     
     ///////////////////////////////////////////////////////////////////////
     //
@@ -61,9 +60,9 @@ public  class   Wrapper41
         if ( wrapped instanceof EmbedResultSet40 ) { _embedded = (EmbedResultSet40) wrapped; }
         else if ( wrapped instanceof EmbedCallableStatement40 ) { _embedCallableStatement = (EmbedCallableStatement40) wrapped; }
         else if ( wrapped instanceof BrokeredCallableStatement40 ) { _brokeredCallableStatement = (BrokeredCallableStatement40) wrapped; }
-        else if ( wrapped instanceof NetResultSet40 ) { _netclient = (NetResultSet40) wrapped; }
-        else if ( wrapped instanceof ClientCallableStatement40 ) { _callableStatement = (ClientCallableStatement40) wrapped; }
-        else if ( wrapped instanceof LogicalCallableStatement40 ) { _logicalCallableStatement = (LogicalCallableStatement40) wrapped; }
+        else if ( wrapped instanceof ClientResultSet ) { _netclient = (ClientResultSet) wrapped; }
+        else if ( wrapped instanceof ClientCallableStatement ) { _callableStatement = (ClientCallableStatement) wrapped; }
+        else if ( wrapped instanceof LogicalCallableStatement ) { _logicalCallableStatement = (LogicalCallableStatement) wrapped; }
         else { throw nothingWrapped(); }
     }
     

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/Wrapper41Conn.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/Wrapper41Conn.java?rev=1482405&r1=1482404&r2=1482405&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/Wrapper41Conn.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/Wrapper41Conn.java Tue May 14 15:40:24 2013
@@ -27,8 +27,8 @@ import java.util.concurrent.Executor;
 
 import org.apache.derby.impl.jdbc.EmbedConnection40;
 import org.apache.derby.iapi.jdbc.BrokeredConnection40;
-import org.apache.derby.client.net.NetConnection40;
-import org.apache.derby.client.am.LogicalConnection40;
+import org.apache.derby.client.am.LogicalConnection;
+import org.apache.derby.client.net.NetConnection;
 
 /**
  * A wrapper around the abort(Executor) method added by JDBC 4.1.
@@ -44,9 +44,9 @@ public  class   Wrapper41Conn
     ///////////////////////////////////////////////////////////////////////
 
     private EmbedConnection40    _embedded;
-    private NetConnection40      _netclient;
+    private NetConnection      _netclient;
     private BrokeredConnection40 _brokeredConnection;
-    private LogicalConnection40 _logicalConnection;
+    private LogicalConnection _logicalConnection;
     
     ///////////////////////////////////////////////////////////////////////
     //
@@ -58,8 +58,8 @@ public  class   Wrapper41Conn
     {
         if ( wrapped instanceof EmbedConnection40 ) { _embedded = (EmbedConnection40) wrapped; }
         else if ( wrapped instanceof BrokeredConnection40 ) { _brokeredConnection = (BrokeredConnection40) wrapped; }
-        else if ( wrapped instanceof NetConnection40 ) { _netclient = (NetConnection40) wrapped; }
-        else if ( wrapped instanceof LogicalConnection40 ) { _logicalConnection = (LogicalConnection40) wrapped; }
+        else if ( wrapped instanceof NetConnection) { _netclient = (NetConnection) wrapped; }
+        else if ( wrapped instanceof LogicalConnection ) { _logicalConnection = (LogicalConnection) wrapped; }
         else { throw nothingWrapped(); }
     }
     

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/Wrapper41Driver.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/Wrapper41Driver.java?rev=1482405&r1=1482404&r2=1482405&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/Wrapper41Driver.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/Wrapper41Driver.java Tue May 14 15:40:24 2013
@@ -26,7 +26,7 @@ import java.sql.SQLException;
 import java.util.logging.Logger;
 
 import org.apache.derby.jdbc.AutoloadedDriver40;
-import org.apache.derby.jdbc.ClientDriver40;
+import org.apache.derby.jdbc.ClientDriver;
 import org.apache.derby.jdbc.Driver40;
 
 /**
@@ -44,7 +44,7 @@ public  class   Wrapper41Driver
 
     private AutoloadedDriver40    _embedded;
     private Driver40            _driver40;
-    private ClientDriver40      _netclient;
+    private ClientDriver      _netclient;
     
     ///////////////////////////////////////////////////////////////////////
     //
@@ -56,7 +56,7 @@ public  class   Wrapper41Driver
     {
         if ( wrapped instanceof AutoloadedDriver40 ) { _embedded = (AutoloadedDriver40) wrapped; }
         else if ( wrapped instanceof Driver40 ) { _driver40 = (Driver40) wrapped; }
-        else if ( wrapped instanceof ClientDriver40 ) { _netclient = (ClientDriver40) wrapped; }
+        else if ( wrapped instanceof ClientDriver ) { _netclient = (ClientDriver) wrapped; }
         else { throw nothingWrapped( wrapped ); }
     }
     

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/AutoloadTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/AutoloadTest.java?rev=1482405&r1=1482404&r2=1482405&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/AutoloadTest.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/AutoloadTest.java Tue May 14 15:40:24 2013
@@ -338,8 +338,7 @@ public class AutoloadTest extends BaseJD
     }
     private String  getClientDriverName()
     {
-        if ( JDBC.vmSupportsJDBC4() ) { return "org.apache.derby.jdbc.ClientDriver40"; }
-        else { return "org.apache.derby.jdbc.ClientDriver"; }
+        return "org.apache.derby.jdbc.ClientDriver";
     }
     
     /**

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/DriverTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/DriverTest.java?rev=1482405&r1=1482404&r2=1482405&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/DriverTest.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/DriverTest.java Tue May 14 15:40:24 2013
@@ -223,7 +223,12 @@ public class DriverTest extends BaseJDBC
         // test that the driver is one of the special 40 versions if we are running
         // on Java 6 or higher
         println( "Driver is a " + driver.getClass().getName() );
-        assertEquals( JDBC.vmSupportsJDBC4(), driver.getClass().getName().endsWith( "40" ) );
+        if (usingEmbedded()) {
+            assertEquals( JDBC.vmSupportsJDBC4(), driver.getClass().getName().endsWith( "40" ) );
+        } else {
+            // The same client driver class is used regardless of JDBC version.
+            assertEquals("ClientDriver", driver.getClass().getSimpleName());
+        }
 
         // test that null connection URLs raise a SQLException per JDBC 4.2 spec clarification
         try {

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/StatementPoolingTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/StatementPoolingTest.java?rev=1482405&r1=1482404&r2=1482405&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/StatementPoolingTest.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/StatementPoolingTest.java Tue May 14 15:40:24 2013
@@ -187,7 +187,7 @@ public class StatementPoolingTest
             {
                 expectedName += "42";
             }
-            else
+            else if (usingEmbedded())
             {
                 expectedName += "40";
             }

Modified: db/derby/code/trunk/tools/jar/dnc.properties
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/tools/jar/dnc.properties?rev=1482405&r1=1482404&r2=1482405&view=diff
==============================================================================
--- db/derby/code/trunk/tools/jar/dnc.properties (original)
+++ db/derby/code/trunk/tools/jar/dnc.properties Tue May 14 15:40:24 2013
@@ -33,8 +33,4 @@ derby.module.client.xads=org.apache.derb
 derby.module.client.40xads=org.apache.derby.jdbc.ClientXADataSource40
 derby.module.client.40njxads=org.apache.derby.jdbc.BasicClientXADataSource40
 
-derby.module.client.40cp=org.apache.derby.client.ClientPooledConnection40
-derby.module.client.40nc=org.apache.derby.client.net.NetConnection40
-derby.module.client.40cjof=org.apache.derby.client.net.ClientJDBCObjectFactoryImpl40
-
 derby.module.shared.threaddump=org.apache.derby.shared.common.sanity.ThreadDump