[webbeans-dev] Recent BeanManager commit

Clint Popetz cpopetz at gmail.com
Thu Jun 4 19:36:34 EDT 2009


This change:

http://fisheye.jboss.org/changelog/Webbeans/?cs=2765

is rather large, but it wasn't possible to make it smaller and still
commit without breaking tests.  It consists of:

  * Make the BeanManager interface match the spec.  Since this was
rather large and involved a lot of changes, I went ahead and reorder
the methods to match the order that they are specified in JSR-299, so
that it's easier to track changes in the spec.
  * Introduce new classes that the above signatures use, e.g.
inject/spi/Annotated*
  * Make ManagerImpl implement the parts of the above changes
necessary to allow the rest of the source base to compile.
  * Create a bridge in the tck-impl to implement removed calls in the
old SPI which the tck uses heavily and which weren't easily
refactorable as direct calls to the new SPI methods, for instance
getInstanceByType and getInstanceByName
  * Make the tck use that bridge, and also use new signatures for
things that were easier to refactor, like addObserver and
removeObserver
  * Make the bootstrap fire the new bootstrap events,
Before/AfterBeanDiscovery and AfterDeploymentValidation.
  * Create implementations of those events, which I've placed in the
bootstrap package but which arguably could go in the events package
  * Make the tests for those events work, because they are now
interfaces rather than binding annotations, and because their
semantics have changed.  (BeforeBeanDiscovery was previously fired
_after_ beans were registered, but I have changed it to fire before,
which I think is correct.)  Though this is not a complete coverage of
those events in the spec.  For example, there is a requirement that
the validation phase collect all exceptions reported via observers
through AfterDeploymentValidation.addDeploymentProblem and report them
all after all observers have run.
  * Add the javax.el api dependency to the api pom, since BeanManager
references it.

I have no tck failures out-of-container, and I have a few (less than
ten) sporadic failures in-container that I'm trying to nail down, but
I wanted to get the above changes in so that Pete would have the
annotated* classes in the api package to implement, and because I'm
tired of merging conflicts with all these changes :)

Let me know if there are issues I should resolve.  Otherwise I'm going
to fix the above failures and then continue implementing the new
methods in ManagerImpl, in particular createInjectionTarget(), which I
need to make the wicket integration portable.

This is my first commit of any size to the core and the tck, so if I
have screwed up please let me know and I'll correct it promptly.

-Clint

-- 
Clint Popetz
http://42lines.net
Scalable Web Application Development



More information about the weld-dev mailing list