All packages in org.apache.river.*, apart from org.apache.river.api is implementation code. There's also an implementation package org.apache.river.impl.

I think it would be too much work to move everything into the impl package now.

The easiest solution would be to move anything in org.apache.river.api into the net.jini namespace where it makes sense. From memory some things I had wanted to make package private ended up being public because of the need to avoid adding new api to net.jini.* as this namespace was standards developed, however I'm not sure weather it makes sense now to strictly adhere to that rule.

Can we use org.apache.river.* as implementation and net.jini.* for public api?

Anything introduced in River 3.0 will be annotated with @since 3.0 anyway. Anything we can't justify putting into net.jini.* public api namespace should probably remain in the implementation.

Thoughts?


Regards,

Peter.


On 31/08/2015 12:04 AM, Patricia Shanahan wrote:
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?


Reply via email to