In fact, I want to take this one step further for Weld 1.1 and offer
a full "partial startup" mode, whereby the environment can say to Weld
"I've already scanned all the classes, built up all the metadata about
annotations, meta-annotations etc. and called all of the ProcessAnnotatedType events, and
applied modifications from them back, here is the set of AnnotatedTypes from which to
generate beans". Obviously very useful in something like GAE which needs to
cold-start much more often (my crude estimate is this could save say 60% of startup time
without us doing any optimisation on startup time, something I hope Stale can look at once
he has worked on runtime performance). This will also be very useful in JBoss AS 7 which
will offer the ability to build parts of the deployment on the domain controller before
handing it off to the individual servers.
How much time do you expect it will take to get proper API in place to support this?
As we can first try it in JBossAS6, which already has similar mechanism in place; e.g. for
JSF, Hibernate, RestEasy, ...
Another useful feature -- which is also already supported in Jandex and Scanning,
is a way to serialize annotation information, hence no need for actual scanning.
(in Scanning you can actually serialize any information; e.g. Hibernate mapping files
location)
My guess is this would also be very useful for overall Weld config,
specially in restricted envs; GAE, ...