[ 
https://issues.apache.org/jira/browse/HBASE-21071?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16586935#comment-16586935
 ] 

Mingliang Liu commented on HBASE-21071:
---------------------------------------

Thanks [~stack]. That makes perfect sense to me now.

The v4 patch brings back the overload methods, deprecates them, updates 
(correct) the javadoc, and implements them using the option builder (so default 
values are clearer).

This v4 patch is partial and is mainly for Hadoop QA: I did not change all the 
use cases deliberately in this version patch. The reason is that, as we don't 
want to break those public API contract, let's see if the change makes our 
tests happy using the deprecated old APIs. Hopefully they are fine.

After this, I'll prepare the v5 patch, and the difference will be us eating our 
own dog food: update all existing test cases to use the new option builder (the 
change is already in v3 patch, I only need to merge them to v4 patch).

Sounds like a plan? Thanks!

> HBaseTestingUtility::startMiniCluster() to use builder pattern
> --------------------------------------------------------------
>
>                 Key: HBASE-21071
>                 URL: https://issues.apache.org/jira/browse/HBASE-21071
>             Project: HBase
>          Issue Type: Bug
>          Components: test
>    Affects Versions: 3.0.0
>            Reporter: Mingliang Liu
>            Assignee: Mingliang Liu
>            Priority: Major
>         Attachments: HBASE-21071.000.patch, HBASE-21071.001.patch, 
> HBASE-21071.002.patch, HBASE-21071.003.patch, HBASE-21071.004.patch
>
>
> Currently there are 13 {{startMiniCluster()}} methods to set up a mini 
> cluster. I'm not surprised if we have a few more in future. It's good to 
> support different combination of optional parameters. We have to pick up one 
> of them carefully while still wondering the default values of other 
> parameters; if we add a new option, we may bring more new methods.
> One solution is to use builder pattern: create a class {{MiniClusterOptions}} 
> along with a static class {{MiniClusterOptionsBuilder}}, create a new method  
> {{startMiniCluster(MiniClusterOptions)}}. In {{master}} we delete the old 13 
> methods while in branch-2, we deprecate the old 13 methods.
> Thoughts?



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to