Feel free to add.
Option 1, minimum java version for everything:
Advantages:
* Don't need a modular build.
* Less work now.
Disadvantages:
* Implementations restricted to minimum platform features.
* Earlier or different platform deployed clients cannot utilise services in
a mixed environment.
Option 2, define modules now:
My suggestion:
Two required for each service implementation, server and proxy:
* Reggie
* Mahalo
* Outrigger
* Phoenix
* Mercury
* Fiddler
* Norm
The platform:
* A minimum required Jini platform module.
* Service api module.
* A private implementation library module.
* Policy extensions module.
Then consider each on its individual merits and needs.
Option 3, exemption for a single undisputed subsystem:
If we're experiencing difficulties arriving at a decision, a new outrigger
utilising concurrency libraries can be a separate implementation of the
existing javaspaces service api and use any java features necessary (just
quietly, I think this'll be a huge improvement over the current buggy
implementation). The same goes for any other service implementation.
There's also a separate experiment to utilise generics in javaspace.
Modularity appears to satisfy everyones needs, without sacrificing
compatibility with earlier or alternate java platforms. (Don't worry Mike, we
can have rtsj service implementations if you really need them, these can be
based on existing implementations) I experimented recently, it wasn't that hard
to break it up into components, I used ant, because I don't have any maven
experience, but this should wait until after the river namspace changes, which
should happen after the 2.1.3 release.
Cheers,
Peter.