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:[email protected]] Sent: Tuesday, October 12, 2010 11:51
AM To: [email protected]; [email protected]
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?