I think it makes sense to delay the release if required for this
cleanup. Such cleanup will get only harder after the release.

On Wed, Oct 19, 2011 at 9:42 AM, Flavio Junqueira <f...@yahoo-inc.com> wrote:
> Hi Ivan, Thanks for putting this list together. I don't have a good sense of
> how many changes the modifications you're proposing would induce. My concern
> is delaying the release further, even though I agree that cleaning up the
> interfaces is important.
>
> Also, I was thinking that some public calls are related to our package
> structure. In particular, I'm referring to BookKeeperTools, which is in this
> tools package and I've needed to make some calls public to be able to access
> from there. It might be a good idea to review those as well.
>
> -Flavio
>
> On Oct 19, 2011, at 5:40 PM, Ivan Kelly wrote:
>
>> I've just gone through the public apis for BK and HW and have found the
>> following issues. Most of them are issues with protection being too loose.
>> There's only 2-3 breaks here which should require code change on the users'
>> part. The rest are things that they really shouldn't be using in any case.
>>
>> BookKeeper#createLedger, parameter is named passwd, "Key" used in
>> LedgerHandle api
>> BookKeeper#getBookieClient shouldn't be public
>> BookKeeper#createComplete shouldn't be public
>> BookKeeper#openComplete shouldn't be public
>> BookKeeper#deleteComplete shouldn't be public
>> BookKeeper#halt could be changed to close(), should throw a BKException
>>
>> LedgerHandle#getLedgerKey passwd is used in BookKeeper, should possibly be
>> private
>> LedgerHandle#getLedgerMetadata shouldn't be public
>> LedgerHandle#getDigestManager shouldn't be public
>> LedgerHandle#getDistributionSchedule shouldn't be public
>> LedgerHandle#writeLedgerConfig shouldn't be public
>> LedgerHandle#addEntry should return void, errors should go in an Exception
>> LedgerHandle#readComplete should not be public
>> LedgerHandle#addComplete should not be public
>> LedgerHandle#readLastConfirmedCompelte should not be public
>> LedgerHandle#closeComplete should not be public
>>
>> ASyncCallback#RecoverCallback shouldn't be public
>>
>> 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.
>>
>> In both BK and HW, context objects are passed around with callbacks. I
>> don't think this is necessary, but it doesn't bug me too much.
>>
>>
>> -Ivan
>
> flavio
> junqueira
>
> research scientist
>
> f...@yahoo-inc.com
> direct +34 93-183-8828
>
> avinguda diagonal 177, 8th floor, barcelona, 08018, es
> phone (408) 349 3300    fax (408) 349 3301
>
>

Reply via email to