IMO it's actually much cleaner for the consumer when doing the split on the top-level. When doing the split on the package-level, a consumer is confronted with internal packages all over the place, i.e. when working with API types, he will always see internal sub-packages. When doing the split on the top-level, a consumer only sees things he is intended to use. Once he is in an API package he will not be confronted with internal types again.

In other words, with the split on the package-level, API and impl are IMO basically interweaved, while they are cleanly separated when doing the split on the top-level.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira