river-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter <j...@zeus.net.au>
Subject Re: River Musings
Date Mon, 31 Aug 2015 07:52:58 GMT
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?
>


Mime
View raw message