From ef7e0d800126210441b002f8a06104146f9228eb Mon Sep 17 00:00:00 2001 From: Allan Espinosa Date: Thu, 10 Oct 2019 14:39:40 -0400 Subject: [PATCH] HIVE-22325: Enable variable expansion for beeline --- .../hs2connection/BeelineSiteParser.java | 4 +-- .../hs2connection/TestBeelineSiteParser.java | 21 ++++++++++++-- .../beeline/hs2connection/beeline-site.xml | 29 +++++++++++++++++++ 3 files changed, 49 insertions(+), 5 deletions(-) create mode 100644 beeline/src/test/resources/org/apache/hive/beeline/hs2connection/beeline-site.xml diff --git a/beeline/src/java/org/apache/hive/beeline/hs2connection/BeelineSiteParser.java b/beeline/src/java/org/apache/hive/beeline/hs2connection/BeelineSiteParser.java index 4c55104da3..0b56372305 100644 --- a/beeline/src/java/org/apache/hive/beeline/hs2connection/BeelineSiteParser.java +++ b/beeline/src/java/org/apache/hive/beeline/hs2connection/BeelineSiteParser.java @@ -91,7 +91,7 @@ public Properties getConnectionProperties() throws BeelineSiteParseException { String key = kv.getKey(); if (key.startsWith(BEELINE_CONNECTION_NAMED_JDBC_URL_PREFIX)) { props.setProperty(key.substring(BEELINE_CONNECTION_NAMED_JDBC_URL_PREFIX.length()), - kv.getValue()); + conf.get(key)); } } } catch (Exception e) { @@ -117,7 +117,7 @@ public Properties getConnectionProperties(String propertyValue) throws BeelineSi if (key.startsWith(BEELINE_CONNECTION_NAMED_JDBC_URL_PREFIX) && (propertyValue.equalsIgnoreCase(kv.getValue()))) { props.setProperty(key.substring(BEELINE_CONNECTION_NAMED_JDBC_URL_PREFIX.length()), - kv.getValue()); + conf.get(key)); } } } catch (Exception e) { diff --git a/beeline/src/test/org/apache/hive/beeline/hs2connection/TestBeelineSiteParser.java b/beeline/src/test/org/apache/hive/beeline/hs2connection/TestBeelineSiteParser.java index fc2b44dac9..f6f41dc4d7 100644 --- a/beeline/src/test/org/apache/hive/beeline/hs2connection/TestBeelineSiteParser.java +++ b/beeline/src/test/org/apache/hive/beeline/hs2connection/TestBeelineSiteParser.java @@ -17,12 +17,15 @@ */ package org.apache.hive.beeline.hs2connection; +import org.junit.Assert; +import org.junit.Test; + import java.io.File; import java.lang.reflect.Field; +import java.util.ArrayList; import java.util.Collection; import java.util.List; -import org.junit.Assert; -import org.junit.Test; +import java.util.Properties; public class TestBeelineSiteParser { @Test @@ -38,4 +41,16 @@ public void testConfigLocationPathInEtc() throws Exception { BeelineSiteParser.DEFAULT_BEELINE_SITE_FILE_NAME)); } -} + + @Test + public void testVariableExpansion() throws Exception { + List locations = new ArrayList(); + String siteFile = getClass().getResource(BeelineSiteParser.DEFAULT_BEELINE_SITE_FILE_NAME).getPath(); + locations.add(siteFile); + BeelineSiteParser parser = new BeelineSiteParser(locations); + + Properties properties = parser.getConnectionProperties(); + + Assert.assertEquals("jdbc:hive2://localhost/?tez.queue.name=myqueue", properties.get("myqueue")); + } +} \ No newline at end of file diff --git a/beeline/src/test/resources/org/apache/hive/beeline/hs2connection/beeline-site.xml b/beeline/src/test/resources/org/apache/hive/beeline/hs2connection/beeline-site.xml new file mode 100644 index 0000000000..5027caf265 --- /dev/null +++ b/beeline/src/test/resources/org/apache/hive/beeline/hs2connection/beeline-site.xml @@ -0,0 +1,29 @@ + + + + + + + beeline.hs2.jdbc.url.default + jdbc:hive2://localhost/ + + + beeline.hs2.jdbc.url.myqueue + ${beeline.hs2.jdbc.url.default}?tez.queue.name=myqueue + + -- 2.18.1