[ https://issues.apache.org/jira/browse/HBASE-20119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16401877#comment-16401877 ]
Hudson commented on HBASE-20119: -------------------------------- Results for branch master [build #263 on builds.a.o|https://builds.apache.org/job/HBase%20Nightly/job/master/263/]: (x) *{color:red}-1 overall{color}* ---- details (if available): (/) {color:green}+1 general checks{color} -- For more information [see general report|https://builds.apache.org/job/HBase%20Nightly/job/master/263//General_Nightly_Build_Report/] (/) {color:green}+1 jdk8 hadoop2 checks{color} -- For more information [see jdk8 (hadoop2) report|https://builds.apache.org/job/HBase%20Nightly/job/master/263//JDK8_Nightly_Build_Report_(Hadoop2)/] (x) {color:red}-1 jdk8 hadoop3 checks{color} -- For more information [see jdk8 (hadoop3) report|https://builds.apache.org/job/HBase%20Nightly/job/master/263//JDK8_Nightly_Build_Report_(Hadoop3)/] (/) {color:green}+1 source release artifact{color} -- See build output for details. > 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, 3.0.0, 2.1.0 > > Attachments: HBASE-20119.branch-2.v0.patch, > HBASE-20119.v0.patch.patch, HBASE-20119.v1.patch.patch, HBASE-20119.v2.patch, > HBASE-20119.v3.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)