diff --git a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBDriverBase.java b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBDriverBase.java
index 9bd8641..9524b1c 100644
--- a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBDriverBase.java
+++ b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBDriverBase.java
@@ -206,6 +206,10 @@
         return getParentLogger(getClass());
     }
 
+    protected Logger getLogger() {
+        return Logger.getLogger(getClass().getName());
+    }
+
     private ADBDriverContext getOrCreateDriverContext() {
         ADBDriverContext ctx = context;
         if (ctx == null) {
@@ -220,7 +224,12 @@
     }
 
     protected ADBDriverContext createDriverContext() {
-        return new ADBDriverContext(getClass(), getDriverSupportedProperties(), createErrorReporter());
+        return new ADBDriverContext(getDriverVersion(), getDriverSupportedProperties(), createErrorReporter(),
+                getLogger());
+    }
+
+    protected ADBProductVersion getDriverVersion() {
+        return ADBProductVersion.parseDriverVersion(getClass().getPackage());
     }
 
     protected Collection<ADBDriverProperty> getDriverSupportedProperties() {
diff --git a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBDriverContext.java b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBDriverContext.java
index 3a7401f..f81bb9f 100644
--- a/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBDriverContext.java
+++ b/asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBDriverContext.java
@@ -38,14 +38,12 @@
 
 public class ADBDriverContext {
 
-    private final Class<? extends ADBDriverBase> driverClass;
-
-    private final ADBErrorReporter errorReporter;
-
     private final ADBProductVersion driverVersion;
 
     private final Map<String, ADBDriverProperty> supportedProperties;
 
+    private final ADBErrorReporter errorReporter;
+
     private final Logger logger;
 
     private final ObjectReader genericObjectReader;
@@ -56,12 +54,11 @@
 
     private final ObjectWriter admFormatObjectWriter;
 
-    ADBDriverContext(Class<? extends ADBDriverBase> driverClass,
-            Collection<ADBDriverProperty> driverSupportedProperties, ADBErrorReporter errorReporter) {
-        this.driverClass = Objects.requireNonNull(driverClass);
+    public ADBDriverContext(ADBProductVersion driverVersion, Collection<ADBDriverProperty> driverSupportedProperties,
+            ADBErrorReporter errorReporter, Logger logger) {
+        this.driverVersion = Objects.requireNonNull(driverVersion);
         this.errorReporter = Objects.requireNonNull(errorReporter);
-        this.logger = Logger.getLogger(driverClass.getName());
-        this.driverVersion = ADBProductVersion.parseDriverVersion(driverClass.getPackage());
+        this.logger = Objects.requireNonNull(logger);
         this.supportedProperties = createPropertyIndexByName(driverSupportedProperties);
 
         ObjectMapper genericObjectMapper = createGenericObjectMapper();
@@ -86,7 +83,7 @@
 
     protected ObjectMapper createADMFormatObjectMapper() {
         ObjectMapper mapper = new ObjectMapper();
-        SimpleModule serdeModule = new SimpleModule(driverClass.getName());
+        SimpleModule serdeModule = new SimpleModule(getClass().getName());
         ADBStatement.configureADMFormatSerialization(serdeModule);
         ADBRowStore.configureADMFormatDeserialization(mapper, serdeModule);
         mapper.registerModule(serdeModule);
