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 <boschi1...@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); - } - }