[ https://issues.apache.org/jira/browse/HBASE-20119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16399748#comment-16399748 ]
Hadoop QA commented on HBASE-20119: ----------------------------------- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 21s{color} | {color:blue} Docker mode activated. {color} | | {color:red}-1{color} | {color:red} patch {color} | {color:red} 0m 2s{color} | {color:red} HBASE-20119 does not apply to master. Rebase required? Wrong Branch? See https://yetus.apache.org/documentation/0.7.0/precommit-patchnames for help. {color} | \\ \\ || Subsystem || Report/Notes || | Docker | Client=17.05.0-ce Server=17.05.0-ce Image:yetus/hbase:eee3b01 | | JIRA Issue | HBASE-20119 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12914609/HBASE-20119.v2.patch | | Console output | https://builds.apache.org/job/PreCommit-HBASE-Build/11968/console | | Powered by | Apache Yetus 0.7.0 http://yetus.apache.org | This message was automatically generated. > Introduce a pojo class to carry coprocessor information in order to make > TableDescriptorBuilder accept multiple cp at once > -------------------------------------------------------------------------------------------------------------------------- > > Key: HBASE-20119 > URL: https://issues.apache.org/jira/browse/HBASE-20119 > Project: HBase > Issue Type: Task > Reporter: Chia-Ping Tsai > Assignee: Chia-Ping Tsai > Priority: Minor > Fix For: 2.0.0 > > Attachments: HBASE-20119.v0.patch.patch, HBASE-20119.v1.patch.patch, > HBASE-20119.v2.patch > > > The way to add cp to TableDescriptorBuilder is shown below. > {code:java} > public TableDescriptorBuilder addCoprocessor(String className) throws > IOException { > return addCoprocessor(className, null, Coprocessor.PRIORITY_USER, null); > } > public TableDescriptorBuilder addCoprocessor(String className, Path > jarFilePath, > int priority, final Map<String, String> kvs) throws IOException { > desc.addCoprocessor(className, jarFilePath, priority, kvs); > return this; > } > public TableDescriptorBuilder addCoprocessorWithSpec(final String specStr) > throws IOException { > desc.addCoprocessorWithSpec(specStr); > return this; > }{code} > When loading our config to create table with multiple cps, we have to write > the ugly for-loop. > {code:java} > val builder = TableDescriptorBuilder.newBuilde(tableName) > .setAAA() > .setBBB() > cps.map(toHBaseCp).foreach(builder.addCoprocessor) > cfs.map(toHBaseCf).foreach(builder.addColumnFamily) > admin.createTable(builder.build()) > {code} > If we introduce a pojo to carry the cp data and add the method accepting > multiple cps and cfs, it is easier to exercise the fluent interface of > TableDescriptorBuilder. > {code:java} > admin.createTable(TableDescriptorBuilder.newBuilde(tableName) > .addCoprocessor(cps.map(toHBaseCp).asJavaCollection) > .addColumnFamily(cf.map(toHBaseCf).asJavaCollection) > .setAAA() > .setBBB() > .build){code} > > -- This message was sent by Atlassian JIRA (v7.6.3#76005)