river-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter Firmstone <j...@zeus.net.au>
Subject Re: Java package names
Date Tue, 12 Oct 2010 23:14:25 GMT
Hmm,

How about a compromise:

   1. Lets get all tests passing, then release as is.
   2. The original intent behind com.sun.* is that it's subject to
      change, this should remain.
   3. Developers do use the com.sun.* name space.
   4. Renaming the entire com.sun.* name space now, might be too much
      change too quickly.

A reasonable compromise might be to retain the com.sun.* name space, 
however we will advise changes, such as Patricia's TaskManager 
refactoring in the Release Notes.

Downstream developers, will have to address changes in the com.sun.* 
name space.

As before there is no guarantee the com.sun.* name space won't change.

I use these name spaces when developing new classes:

org.apache.river.api.*
org.apache.river.imp.*

I think we need to break up River's build and make it more Modular, we 
can still have a main build script to tests and assembles the release, 
that calls the individual builds, but I think we need several minor 
builds perhaps broken down into modules like this:

    * Jini Platform
    * Service API (compiled with Java 1.4, how often do we need to
      rebuild them? Almost never.)
    * Implementation Libraries
    * Reggie
    * Mahalo
    * Phoenix
    * Outrigger
    * Mercury
    * Norm
    * Fiddler
    * Test Platform

Then developers will be free to work on one Module, which is an 
independent build, each module should contain it's own tests.  All tests 
can be run weekly on Hudson as an integration test.

If we version the implementation components and they are independent, 
then client and services can depend on particular versions, each client 
or service can go in their own namespace, to avoid class conflicts:

Example deployment namespace:


                                 Jini Platform & Service API (stable)
         
______________________________________|______________________________________________
        |             |             |             |              
|              |             |       
     Reggie       Outrigger      Phoenix       *Client       *Service 
       *Proxy    Platform Implementation
  + Imp Lib      + Imp Lib      + Imp Lib                    + Imp 
Lib               Classes (not publicly visible)


* Represents client developer applications.
Reggie, Outrigger, Phoenix shown here are Service Implementations, not 
their proxy's.

Each private namespace can utilise a different implementation library 
version, implementation classes required by the Jini Platform will need 
to remain with the Jini Platform.

All implementations cooperate using the common stable api in the Jini 
Platform & Service API.

It will be easier to support different platforms, like Java CDC (Java 
1.4 subset), using a subset release, this could potentially become our 
largest Java client base with internet connected BlueRay Players and 
Digital TV's.  ServiceUI is a competitive advantage in this environment.

These are just my thoughts, what are yours?

Cheers,

Peter.



Patricia Shanahan wrote:
> This is troubling news. My proposed refactoring of TaskManager to 
> enable performance tuning depends on the assumption that, as a 
> com.sun.* class, it is only used within the project.
>
> In general, we will be severely limited in our ability to progress if 
> we have to treat all public com.sun.* interfaces as external interfaces.
>
> Patricia
>
>
> Christopher Dolan wrote:
>> I vote against such an incompatible change.  There are a lot of
>> classes under there, for example com.sun.jini.thread.TaskManager,
>> that are utility code employed by downstream developers.  I think all
>> new code should go elsewhere if possible, but changing the existing
>> com.sun.jini packages would be hard on existing users.
>>
>> Chris
>>
>>
>> -----Original Message----- From: Benson Margulies
>> [mailto:bimargulies@gmail.com] Sent: Tuesday, October 12, 2010 11:51
>> AM To: general@incubator.apache.org; river-dev@incubator.apache.org 
>> Subject: Java package names
>>
>> River imported packages of code from the original Sun grant under the
>>  name 'com.sun.whatever'.
>>
>> How important is it to change that?
>
>


Mime
View raw message