[jsr294-modularity-eg] 294 EG conf call, 2009-07-08
Alex.Buckley at Sun.COM
Wed Jul 8 14:41:52 EDT 2009
Alex Buckley, Bryan Atsatt, Bob Lee, Peter Kriens, BJ Hargrave,
* Draft of EDR2 materials
Alex sent a draft of the language, classfile, VM, and API specs to the
EG on 6/28/09. Alex did some minor renaming during the call as points
were raised. Peter will unify his and BJ's comments and send to Alex.
* Optional directives in module-info.java
Use cases for a reserved 'optional' keyword in module-info.java were
discussed. Both OSGi and Jigsaw have mandatory and optional
dependencies. BJ described a client using a logging API may still run if
the logging implementation is not present. Peter described bnd's
operation in different environments (Eclipse, Ant, Maven) where
different entrypoints mean the classes resolved (in JVM Spec terms)
during any one run are a fraction of all the classes statically
referenced from bnd's code. Reserving the 'optional' keyword was agreed.
* Annotations at compile-time and runtime
Peter pointed out that when code uses an annotation whose annotation
type has retention policy of SOURCE, the annotation type needs to be
available at compile-time --> module-info.java must express a dependency
on the annotation type's module. But since the annotation type is
guaranteed not to be needed at runtime, the dependency in
module-info.java is arguably redundant.
Peter claims this is a flaw in the 294 model of unifying compile-time
and runtime visibility, and will document it further. The counterclaim
was made that a programmer could well use the 'optional' keyword to
indicate to a module system that best efforts should be made at
compile-time but that the annotation type's module is only needed
"on-demand" at runtime, when the annotated element is reflected over.
* Next meeting
Wednesday 15 July. 10am US West, 1pm US East.
More information about the jsr294-modularity-eg