You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Andrew Purtell (JIRA)" <ji...@apache.org> on 2016/08/15 06:28:22 UTC

[jira] [Commented] (HBASE-15982) Interface ReplicationEndpoint extends Guava's Service

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

Andrew Purtell commented on HBASE-15982:
----------------------------------------

Here's a new wrinkle. Now that we've banned jsr305-findbugs, some versions of Guava cannot be used because they cause a compilation failure at ReplicationEndpoint:
{noformat}
[ERROR] .m2/repository/com/google/guava/guava/14.0.1/guava-14.0.1.jar
    (com/google/common/util/concurrent/AbstractService.class): warning:
    Cannot find annotation method 'value()' in type 'GuardedBy': class
    file for javax.annotation.concurrent.GuardedBy not found
{noformat}


> Interface ReplicationEndpoint extends Guava's Service
> -----------------------------------------------------
>
>                 Key: HBASE-15982
>                 URL: https://issues.apache.org/jira/browse/HBASE-15982
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Andrew Purtell
>             Fix For: 2.0.0, 1.4.0, 0.98.22
>
>
> We have Guava's Service leaking into the LimitedPrivate interface ReplicationEndpoint:
> {code}
> public interface ReplicationEndpoint extends Service, ReplicationPeerConfigListener
> {code}
> This required a private patch when I updated Guava for our internal deployments. This is going to be a problem for us for long term maintenance and implenters of pluggable replication endpoints. LP is only less than public by a degree. We shouldn't leak types from third part code into either Public or LP APIs in my opinion. Let's fix.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)