You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@bookkeeper.apache.org by "Ivan Kelly (Updated) (JIRA)" <ji...@apache.org> on 2011/11/07 11:51:51 UTC

[jira] [Updated] (BOOKKEEPER-90) Hedwig API changes for initial Bookkeeper release

     [ https://issues.apache.org/jira/browse/BOOKKEEPER-90?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ivan Kelly updated BOOKKEEPER-90:
---------------------------------

    Attachment: BOOKKEEPER-90.diff

Updated diff to apply on trunk. 

The conclusions on the contentious bits are:

1) Leave ByteStrings as they are. There's other places where protobufs are used in the api, which cannot be easily changed without wrapping all the protobuf stuff which defeats the purpose of using protobufs in the first place. If we decide to move away from protobufs, we'll have to create a completely new API. 

2) HedwigClient#stop is renamed to HedwigClient#close and does not throw an exception. This is because closing the HedwigClient is a purely local operation and doesn't need to send any information at all to the hubs. 
                
> Hedwig API changes for initial Bookkeeper release
> -------------------------------------------------
>
>                 Key: BOOKKEEPER-90
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-90
>             Project: Bookkeeper
>          Issue Type: Improvement
>            Reporter: Ivan Kelly
>            Assignee: Ivan Kelly
>             Fix For: 4.0.0
>
>         Attachments: BOOKKEEPER-90.diff, BOOKKEEPER-90.diff, BOOKKEEPER-90.diff
>
>
> HedwigClient#getSslFactory shouldn't be public
> HedwigClient#getConsumeCallback shouldn't be public
> HedwigClient#doConnect shouldn't be public
> HedwigClient#getHostFromChannel shouldn't be public
> HedwigClient#getResponseHandlerFromChannel shouldn't be public
> HedwigClient#getHostForTopic shouldn't be public
> HedwigClient#clearAllTopicsForHost shouldn't be public
> HedwigClient#getClientTimer shoulnd't be public
> HedwigClient#stop should throw some sort of Exception in the case of errors
> HedwigPublisher#publish shouldn't use protobuf ByteString, as it requires the user to import protobufs
> HedwigPublisher#getChannelForHost shouldn't be public
> HedwigSubscriber#HedwigSubscriber shouldn't be public
> HedwigSubscriber#doConsume shouldn't be public
> HedwigSubscriber#hasSubscription probably shouldn't be public
> HedwigSubscriber#getSubscriptionList shoulnd't exist
> HedwigSubscriber#getChannelForTopic shouldn't be public
> HedwigSubscriber#setChannelforTopic shouldn't be public
> HedwigSubscriber#removeChannelForTopic shound't be public
> MessageHandler#consume should be called 'deliver'
> The hedwig client is under a netty package. There's nothing netty specific about the api, so it should be in the org.apache.hedwig.client package. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira