The proposal for JSR 308, “Annotations on Java Types”, is available now. I’ve read it diagonally once, and it looks pretty nice. They’re finally adding class and runtime retention for local variables, something my LAPT-javac already did in October 2006. xajavac also incorporates my own non-standard representation for local variable annotations. Now that a standard representation is emerging, I’ll either have to change my implementation to make it adhere to the JSR 308 proposal, or I’ll have to drop it. That’s not a surprise, though; when I wrote LAPT-javac, I fully expected that it would become obsolete soon.
Subtyping for annotations is also mentioned, but to my delight only under “Out-of-scope issues”, a.k.a. suggestions. So at least in the near future, xajavac seems to be the only project to incorporate annotations with subtyping into Java.