You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by eo...@apache.org on 2022/10/11 07:53:07 UTC

[pulsar] branch master updated: [improve][connector] JDBC sink: allow any jdbc driver (#17951)

This is an automated email from the ASF dual-hosted git repository.

eolivelli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/master by this push:
     new 5c31c9af041 [improve][connector] JDBC sink: allow any jdbc driver (#17951)
5c31c9af041 is described below

commit 5c31c9af04176f81d1616dde64567d0e0ce1f2c8
Author: Nicolò Boschi <bo...@gmail.com>
AuthorDate: Tue Oct 11 09:52:59 2022 +0200

    [improve][connector] JDBC sink: allow any jdbc driver (#17951)
---
 .../apache/pulsar/io/jdbc/JdbcAbstractSink.java    |  2 -
 .../org/apache/pulsar/io/jdbc/JdbcDriverType.java  | 62 ----------------------
 .../java/org/apache/pulsar/io/jdbc/JdbcUtils.java  | 10 ----
 3 files changed, 74 deletions(-)

diff --git a/pulsar-io/jdbc/core/src/main/java/org/apache/pulsar/io/jdbc/JdbcAbstractSink.java b/pulsar-io/jdbc/core/src/main/java/org/apache/pulsar/io/jdbc/JdbcAbstractSink.java
index 1d12909d5e2..3f7f62e3abb 100644
--- a/pulsar-io/jdbc/core/src/main/java/org/apache/pulsar/io/jdbc/JdbcAbstractSink.java
+++ b/pulsar-io/jdbc/core/src/main/java/org/apache/pulsar/io/jdbc/JdbcAbstractSink.java
@@ -89,8 +89,6 @@ public abstract class JdbcAbstractSink<T> implements Sink<T> {
             properties.setProperty("password", password);
         }
 
-
-        Class.forName(JdbcUtils.getDriverClassName(jdbcSinkConfig.getJdbcUrl()));
         connection = DriverManager.getConnection(jdbcSinkConfig.getJdbcUrl(), properties);
         connection.setAutoCommit(!jdbcSinkConfig.isUseTransactions());
         log.info("Opened jdbc connection: {}, autoCommit: {}", jdbcUrl, connection.getAutoCommit());
diff --git a/pulsar-io/jdbc/core/src/main/java/org/apache/pulsar/io/jdbc/JdbcDriverType.java b/pulsar-io/jdbc/core/src/main/java/org/apache/pulsar/io/jdbc/JdbcDriverType.java
deleted file mode 100644
index 1a4710622b7..00000000000
--- a/pulsar-io/jdbc/core/src/main/java/org/apache/pulsar/io/jdbc/JdbcDriverType.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/**
- * 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.pulsar.io.jdbc;
-
-import lombok.Getter;
-
-@Getter
-public enum JdbcDriverType {
-
-    CLICKHOUSE("jdbc:clickhouse:", "ru.yandex.clickhouse.ClickHouseDriver"),
-    DB2("jdbc:db2:", "com.ibm.db2.jcc.DB2Driver"),
-    DERBY_CLIENT("jdbc:derby://", "org.apache.derby.jdbc.ClientDriver"),
-    DERBY_EMBEDDED("jdbc:derby:", "org.apache.derby.jdbc.EmbeddedDriver"),
-    FIREBIRD("jdbc:firebird:", "org.firebirdsql.jdbc.FBDriver"),
-    FIREBIRD_SQL("jdbc:firebirdsql:", "org.firebirdsql.jdbc.FBDriver"),
-    H2("jdbc:h2:", "org.h2.Driver"),
-    HSQL("jdbc:hsqldb:", "org.hsqldb.jdbcDriver"),
-    INFORMIX("jdbc:informix-sqli:", "com.informix.jdbc.IfxDriver"),
-    JTDS("jdbc:jtds:", "net.sourceforge.jtds.jdbc.Driver"),
-    MARIADB("jdbc:mariadb:", "org.mariadb.jdbc.Driver"),
-    MYSQL("jdbc:mysql:", "com.mysql.cj.jdbc.Driver"),
-    MYSQL_GOOGLE("jdbc:google:", "com.mysql.jdbc.GoogleDriver"),
-    ORACLE("jdbc:oracle", "oracle.jdbc.OracleDriver"),
-    POSTGRESQL("jdbc:postgresql:", "org.postgresql.Driver"),
-    REDSHIFT("jdbc:redshift:", "com.amazon.redshift.jdbc42.Driver"),
-    SAPHANA("jdbc:sap:", "com.sap.db.jdbc.Driver"),
-    SNOWFLAKE("jdbc:snowflake:", "net.snowflake.client.jdbc.SnowflakeDriver"),
-    SQLDROID("jdbc:sqldroid:", "org.sqldroid.SQLDroidDriver"),
-    SQLLITE("jdbc:sqlite:", "org.sqlite.JDBC"),
-    SQLSERVER("jdbc:sqlserver:", "com.microsoft.sqlserver.jdbc.SQLServerDriver"),
-    SYBASE("jdbc:sybase:", "com.sybase.jdbc4.jdbc.SybDriver"),
-    TEST_CONTAINERS("jdbc:tc:", "org.testcontainers.jdbc.ContainerDatabaseDriver"),
-    OPENMLDB("jdbc:openmldb:", "com._4paradigm.openmldb.jdbc.SQLDriver");
-
-    JdbcDriverType(String prefix, String driverClass) {
-        this.prefix = prefix;
-        this.driverClass = driverClass;
-    }
-
-    private final String prefix;
-    private final String driverClass;
-
-    public boolean matches(String url) {
-        return url.startsWith(prefix);
-    }
-}
diff --git a/pulsar-io/jdbc/core/src/main/java/org/apache/pulsar/io/jdbc/JdbcUtils.java b/pulsar-io/jdbc/core/src/main/java/org/apache/pulsar/io/jdbc/JdbcUtils.java
index 637de0be96f..327f1db7c64 100644
--- a/pulsar-io/jdbc/core/src/main/java/org/apache/pulsar/io/jdbc/JdbcUtils.java
+++ b/pulsar-io/jdbc/core/src/main/java/org/apache/pulsar/io/jdbc/JdbcUtils.java
@@ -228,14 +228,4 @@ public class JdbcUtils {
     public static PreparedStatement buildDeleteStatement(Connection connection, String deleteSQL) throws SQLException {
         return connection.prepareStatement(deleteSQL);
     }
-
-    public static String getDriverClassName(String jdbcUrl) throws Exception {
-        for (JdbcDriverType type : JdbcDriverType.values()) {
-            if (type.matches(jdbcUrl)) {
-                return type.getDriverClass();
-            }
-        }
-        throw new Exception("Provided JDBC connection string contains unknown driver: " + jdbcUrl);
-    }
-
 }