[
https://issues.apache.org/jira/browse/HBASE-20119?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Chia-Ping Tsai updated HBASE-20119:
-----------------------------------
Description:
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}
was:
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}
> 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
>
>
> 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)