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

stack commented on HBASE-21071:
-------------------------------

Or, I just took a look... startMiniCluster method starts a MiniHBaseCluster.... 
Does this mean the options should be MiniHBaseClusterOptions and we should 
rename this start method to be startMiniHBaseCluster. 

These test classes are messy. They grew over time. They intentionally allow 
user many options but yes, as you note, the plethora tend to overwhelm making 
it unreadable at a certain point. Would a MiniHBaseClusterBuilder make sense 
returning a MiniHBaseCluster instance on which you called start.

Sorry for the messy feedback. You seem good at 'design' -- though limited 
interaction -- so I feel ok pushing back offering a larger refactor (smile).

> 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
>
> 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