On 13/01/2017 12:48, Sander Mak wrote:
For Stephen's example then it would be better to steer people to using
services and avoid the reflection guard that Lib would need to cope with
A not being resolved.
Alternatively, you can view optional dependency usage more like 'if the
application already uses A, then Lib should also use A as well' in which case
your suggested setup and the current implementation make total sense. This does
make the example I described above a bit awkward, but I don't have any data on
which use case is more prevalent.
`requires static A` does have its usages of courses, the main one is
where `module A` only exports packages containing annotations and where
those annotations may not be present at run time.