[ https://issues.apache.org/jira/browse/HBASE-20119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16400688#comment-16400688 ]
stack commented on HBASE-20119: ------------------------------- Lets get it in. +1 for branch-2.0 and branch-2. > 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.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)