From ee8d1a1c39d245abf739d6bf2704c2ddcff91286 Mon Sep 17 00:00:00 2001 From: Joe Swingle Date: Tue, 13 Jun 2017 10:56:22 -0400 Subject: [PATCH] =?UTF-8?q?Fix=20for=20KYLIN-2668.=20=20Added=20Regex=20to?= =?UTF-8?q?=20accept=20after=20=E2=80=98jdbc:kylin:=E2=80=99=20=20up=20to?= =?UTF-8?q?=20the=20=E2=80=98//=E2=80=98.=20=20and=20parsed=20out=20as=20p?= =?UTF-8?q?roperties.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added test to test the url, project and ssl is enabled. --- jdbc/src/main/java/org/apache/kylin/jdbc/KylinConnection.java | 4 ++-- jdbc/src/test/java/org/apache/kylin/jdbc/DriverTest.java | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinConnection.java b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinConnection.java index 685299896..6fb228afb 100644 --- a/jdbc/src/main/java/org/apache/kylin/jdbc/KylinConnection.java +++ b/jdbc/src/main/java/org/apache/kylin/jdbc/KylinConnection.java @@ -51,9 +51,9 @@ public class KylinConnection extends AvaticaConnection { super(driver, factory, url, info); String odbcUrl = url; - odbcUrl = odbcUrl.replace(Driver.CONNECT_STRING_PREFIX + "//", ""); + odbcUrl = odbcUrl.replaceAll((Driver.CONNECT_STRING_PREFIX + "[[A-Za-z0-9]*=[A-Za-z0-9]*;]*//").toString(), ""); + String[] temps = odbcUrl.split("/"); - assert temps.length == 2; this.baseUrl = temps[0]; diff --git a/jdbc/src/test/java/org/apache/kylin/jdbc/DriverTest.java b/jdbc/src/test/java/org/apache/kylin/jdbc/DriverTest.java index 99266f3bc..d5c341a8a 100644 --- a/jdbc/src/test/java/org/apache/kylin/jdbc/DriverTest.java +++ b/jdbc/src/test/java/org/apache/kylin/jdbc/DriverTest.java @@ -19,6 +19,7 @@ package org.apache.kylin.jdbc; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; import java.sql.Connection; import java.sql.PreparedStatement; @@ -179,6 +180,15 @@ public class DriverTest { state.close(); conn.close(); } + + @Test + public void testSSLFromURL() throws SQLException{ + Driver driver = new DummyDriver(); + Connection conn = driver.connect("jdbc:kylin:ssl=True;//test_url/test_db", null); + assertEquals("test_url", ((KylinConnection)conn).getBaseUrl()); + assertEquals("test_db", ((KylinConnection)conn).getProject()); + assertTrue(Boolean.parseBoolean( (String)((KylinConnection)conn).getConnectionProperties().get("ssl"))); + } private void printResultSet(ResultSet rs) throws SQLException { ResultSetMetaData meta = rs.getMetaData(); -- 2.13.2