Fix for KYLIN-2668. Added Regex to accept after âjdbc:kylin:â up to the â//â. and parsed out as properties.
Added test to test the url, project and ssl is enabled. Signed-off-by: shaofengshi <shaofeng...@apache.org> Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/2f084601 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/2f084601 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/2f084601 Branch: refs/heads/KYLIN-2606 Commit: 2f084601b938d6051c0fe02a9fc075be549547f0 Parents: 2bc90f9 Author: Joe Swingle <joe.swin...@hobsons.com> Authored: Tue Jun 13 10:56:22 2017 -0400 Committer: shaofengshi <shaofeng...@apache.org> Committed: Thu Jun 29 10:39:58 2017 +0800 ---------------------------------------------------------------------- .../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(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/2f084601/jdbc/src/main/java/org/apache/kylin/jdbc/KylinConnection.java ---------------------------------------------------------------------- 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 6852998..6fb228a 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]; http://git-wip-us.apache.org/repos/asf/kylin/blob/2f084601/jdbc/src/test/java/org/apache/kylin/jdbc/DriverTest.java ---------------------------------------------------------------------- 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 0887634..4fd9d33 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; @@ -188,6 +189,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();