You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Chia-Ping Tsai (JIRA)" <ji...@apache.org> on 2018/03/02 09:38:00 UTC
[jira] [Created] (HBASE-20119) Introduce a pojo class to carry
coprocessor information in order to make TableDescriptorBuilder accept
multiple cp at once
Chia-Ping Tsai created HBASE-20119:
--------------------------------------
Summary: 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
Fix For: 2.0.0
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()
cfs.map(cf => ColumnFamilyDescriptorBuilder.of(cf))
.foreach(builder.addColumnFamily(_))
cps.foreach(builder.addCoprocessor(_))
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)