[jira] [Commented] (HBASE-18037) Do not expose implementation classes to CP

2017-06-09 Thread Andrew Purtell (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-18037?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16044692#comment-16044692
 ] 

Andrew Purtell commented on HBASE-18037:


Thank you!

> Do not expose implementation classes to CP
> --
>
> Key: HBASE-18037
> URL: https://issues.apache.org/jira/browse/HBASE-18037
> Project: HBase
>  Issue Type: Umbrella
>  Components: Coprocessors
>Affects Versions: 2.0.0
>Reporter: Duo Zhang
>Assignee: Duo Zhang
>Priority: Blocker
> Fix For: 2.0.0, 3.0.0
>
>
> For example, StoreFile. Expose the implementation classes to CP will make it 
> harder to implement new features or improve the old implementation.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (HBASE-18037) Do not expose implementation classes to CP

2017-06-08 Thread stack (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-18037?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16043919#comment-16043919
 ] 

stack commented on HBASE-18037:
---

Thanks for knocking down a blocker [~Apache9]

> Do not expose implementation classes to CP
> --
>
> Key: HBASE-18037
> URL: https://issues.apache.org/jira/browse/HBASE-18037
> Project: HBase
>  Issue Type: Umbrella
>  Components: Coprocessors
>Affects Versions: 2.0.0
>Reporter: Duo Zhang
>Assignee: Duo Zhang
>Priority: Blocker
> Fix For: 2.0.0, 3.0.0
>
>
> For example, StoreFile. Expose the implementation classes to CP will make it 
> harder to implement new features or improve the old implementation.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (HBASE-18037) Do not expose implementation classes to CP

2017-05-15 Thread Andrew Purtell (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-18037?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16011574#comment-16011574
 ] 

Andrew Purtell commented on HBASE-18037:


bq. you are free to hold a reference to a class which is declared as 
IA.Private, but you can only use it as a monolithic object. You can use it as a 
parameter to call a method, or use it as a return value, but you should never 
try to call its methods to change its state of do something else.

Sounds good [~Apache9]. I see you filed HBASE-18050 for followup 

> Do not expose implementation classes to CP
> --
>
> Key: HBASE-18037
> URL: https://issues.apache.org/jira/browse/HBASE-18037
> Project: HBase
>  Issue Type: Umbrella
>  Components: Coprocessors
>Affects Versions: 2.0.0
>Reporter: Duo Zhang
>Priority: Blocker
> Fix For: 2.0.0
>
>
> For example, StoreFile. Expose the implementation classes to CP will make it 
> harder to implement new features or improve the old implementation.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (HBASE-18037) Do not expose implementation classes to CP

2017-05-12 Thread Anoop Sam John (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-18037?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16007741#comment-16007741
 ] 

Anoop Sam John commented on HBASE-18037:


May be some of these methods in the interfaces (which are limited private) do 
not actually needed in the interface.  Only the call stack some where uses 
these methods and for that we end up using interfaces. Agree need a thorough 
check and make a clean up before 2.0

> Do not expose implementation classes to CP
> --
>
> Key: HBASE-18037
> URL: https://issues.apache.org/jira/browse/HBASE-18037
> Project: HBase
>  Issue Type: Umbrella
>  Components: Coprocessors
>Affects Versions: 2.0.0
>Reporter: Duo Zhang
>Priority: Critical
> Fix For: 2.0.0
>
>
> For example, StoreFile. Expose the implementation classes to CP will make it 
> harder to implement new features or improve the old implementation.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (HBASE-18037) Do not expose implementation classes to CP

2017-05-11 Thread Duo Zhang (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-18037?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16007534#comment-16007534
 ] 

Duo Zhang commented on HBASE-18037:
---

And another concern is that in the interfaces which are declared as 
IA.LimitedPrivate, the return value or parameters may be declared as IA.Private.

For example, Store.getScanner will return a KeyValueScanner and KeyValueScanner 
is declared as IA.Private, and one of the parameters of this method is 
ScanQueryMatcher, which is also declared as IA.Private.

A possible explaination is that, you are free to hold a reference to a class 
which is declared as IA.Private, but you can only use it as a monolithic 
object. You can use it as a parameter to call  a method, or use it as a return 
value, but you should never try to call its methods to change its state of do 
something else.

What do you think [~apurtell]? I think we need to explain this in our ref guide?

Thanks.

> Do not expose implementation classes to CP
> --
>
> Key: HBASE-18037
> URL: https://issues.apache.org/jira/browse/HBASE-18037
> Project: HBase
>  Issue Type: Umbrella
>  Components: Coprocessors
>Affects Versions: 2.0.0
>Reporter: Duo Zhang
>Priority: Critical
> Fix For: 2.0.0
>
>
> For example, StoreFile. Expose the implementation classes to CP will make it 
> harder to implement new features or improve the old implementation.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (HBASE-18037) Do not expose implementation classes to CP

2017-05-11 Thread Duo Zhang (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-18037?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16007515#comment-16007515
 ] 

Duo Zhang commented on HBASE-18037:
---

[~apurtell] FYI.

> Do not expose implementation classes to CP
> --
>
> Key: HBASE-18037
> URL: https://issues.apache.org/jira/browse/HBASE-18037
> Project: HBase
>  Issue Type: Umbrella
>  Components: Coprocessors
>Affects Versions: 2.0.0
>Reporter: Duo Zhang
>Priority: Critical
> Fix For: 2.0.0
>
>
> For example, StoreFile. Expose the implementation classes to CP will make it 
> harder to implement new features or improve the old implementation.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)