One objective should be a really clear, and clearly articulated,
distinction between public APIs and implementation.
I would like to see all implementation code marked in one of three ways:
non-public access
com.sun package name
package name with "impl" as one of the components.
Adding a public non-imple API is something that needs to be done very
carefully, because it is difficult to undo.
On 8/30/2015 4:09 AM, Peter wrote:
I finally had the chance to look through the org.apache.river name
change work Dennis Reedy has done, it all looks very impressive, he's
even taken the time to tidy up the qa suite. I haven't had time to run
any tests or look at the jtreg test suite, I promise I'll make some time
in the near future. Before we release this code there is an opportunity
to tidy up the org.apache.river name space even further. In the Jini
days, com.sun.jini.* was implementation code, it wasn't part of the Jini
public API, should we now use org.apache.river.* for this purpose? There
is some new public api, in org.apache.river.api.* and at the time new
implementation code was being placed into org.apache.river.impl.* and
now the com.sun.jini.* namespace has been moved to org.apache.river.*.
Should we consider placing the new api in the net.jini.* namespace? It's
worth looking at the javadoc as most of the new classes are package
private. There are also discovery constraints in the implementation
namespace that should be moved into the public api in my opinion, thoughts?