By using a tool taking advantage of bytecode analysis, a developer could
first annotate the ServiceAPI interface eg: @ServiceAPI, then the
bytecode analysis could find all dependencies that exclude the jini
platform and any other interface (and it's dependencies) that declares
@ServiceAPI
Every class reachable from @ServiceAPI interfaces would have to be
considered in the public API namespace, and as such should be excluded
from preferred lists.
A smart proxy could be annotated with @SmartProxy, then all dependencies
could be discovered using bytecode analysis, ignoring any classes
reachable from service api, the jini or java platforms. This remaining
classes would be the preferred class list.
This list of preferred classes would never be shared with other proxy's
or clients, the server service implementation would still depend on
these classes.
The following Nic's advise, use URL's for all code bases, to avoid
annotation loss.
Thoughts?
Peter.
- Preferred list generation - some thoughts Peter Firmstone
-