[
https://issues.apache.org/jira/browse/HIVE-24402?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Stamatis Zampetakis reassigned HIVE-24402:
------------------------------------------
> Refactor AbstractCliConfig to be final, immutable, and initialisable using a
> builder
> ------------------------------------------------------------------------------------
>
> Key: HIVE-24402
> URL: https://issues.apache.org/jira/browse/HIVE-24402
> Project: Hive
> Issue Type: Task
> Reporter: Stamatis Zampetakis
> Assignee: Stamatis Zampetakis
> Priority: Minor
>
> The fact that the class is abstract indicates that it is meant to be
> subclassed but going over the existing use-cases there does not seem a valid
> reason for this design. Moreover, the class is mutable while in practice
> there is no reason for this.
> Roughly the idea is to replace the subclasses in
> [CliConfigs|https://github.com/apache/hive/blob/master/itests/util/src/main/java/org/apache/hadoop/hive/cli/control/CliConfigs.java]
> with simple instanciations using a builder while at the same time in an
> attempt to limit the extension points and simplify the code.
> +Before+
> {code:java}
> public static class MinimrCliConfig extends AbstractCliConfig {
> public MinimrCliConfig() {
> super(CoreCliDriver.class);
> try {
> setQueryDir("ql/src/test/queries/clientpositive");
> includesFrom(testConfigProps, "minimr.query.files");
> setResultsDir("ql/src/test/results/clientpositive");
> setLogDir("itests/qtest/target/qfile-results/clientpositive");
> setInitScript("q_test_init_for_minimr.sql");
> setCleanupScript("q_test_cleanup.sql");
> setHiveConfDir("");
> setClusterType(MiniClusterType.MR);
> } catch (Exception e) {
> throw new RuntimeException("can't construct cliconfig", e);
> }
> }
> }
> {code}
> +After+
> {code:java}
> public static final CliConfig MINI_MR = new
> CliConfig.Builder(CoreCliDriver.class)
> .queryDir("ql/src/test/queries/clientpositive")
> .resultDir("ql/src/test/results/clientpositive")
> .logDir("itests/qtest/target/qfile-results/clientpositive")
> .addQueryFiles(testConfigProps, "minimr.query.files")
> .initScriptFile("q_test_init_for_minimr.sql")
> .cleanupScriptFile("q_test_cleanup.sql")
> .cluster(MiniClusterType.MR)
> .build();
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)