7. Wire Module
Leans heavily on Guice SPI
Finds and Binds missing dependencies
new WireModule( new SpaceModule... )
Can be re-used!
Extend + Override wiring method
8. Space Module
Based on Class Space abstraction
Scans classes for @Named components
Supports caching and indexing
Can be re-used!
Extend + Override visitor method
9. Ranked Bindings
Sorts using Rank + UID
Supports concurrent iteration+mutation
Re-positions iterator as necessary
Sources of bindings are also ranked
Lazy lookup, unrolling as necessary
10. Shims
Maven3 + Plexus
Both <XML/> and @Component
Nexus Plugins
Hudson + SezPoz
... Mix and Match!
11. Basic Shim Approach
Map bindings to canonical form (Guice)
Cache additional metadata
Use Type Listeners:
Custom injection
Custom Lifecycle (be careful of dependency cycles!)
12. Wouldn’t It Be Nice If ...
Lifecycle Support
IDE Support
Component Catalogue
...?