Eclipse Sisu Container 0.9.0-SNAPSHOT API
Overview
Sisu is a modular JSR-330-based container that supports classpath scanning, auto-binding, and dynamic auto-wiring.Sisu uses Google-Guice to perform dependency injection and provide the core JSR330 support, but removes the need to write explicit bindings in Guice modules:
Guice.createInjector( newIn the example above theWireModule
( // auto-wires unresolved dependencies newSpaceModule
( // scans and binds @Named components newURLClassSpace
( classloader ) // abstracts class/resource finding ) ) );
SpaceModule
scans the classpath using the ClassSpace
abstraction. Any classes annotated with a @Qualifier
annotation like @Named
will be bound as components, making them visible to the BeanLocator
and surrounding WireModule
(constructed around the set of modules making up
the application; in this example there is only one, the SpaceModule
).
The WireModule
uses the Guice introspection SPI to analyze all bindings in the application and apply various rules to finish wiring the configuration. Unsatisfied @Inject
requirements are populated using the BeanLocator
which provides a lookup service across all injectors it knows about, allowing for plugin-style solutions. As well as individual
components, the WireModule
can satisfy requests for component collections like Lists and Maps (using @Named
values as keys). It also cleans up duplicate and overridden
bindings, and merges Parameters
bindings.
Package | Description |
---|---|
org.eclipse.sisu |
Injectable API for Sisu components (a.k.a beans).
|
org.eclipse.sisu.bean |
Customizable injection of bean properties, based on https://github.com/google/guice/wiki/CustomInjections.
|
org.eclipse.sisu.inject |
Dynamic bean lookup across multiple injectors.
|
org.eclipse.sisu.launch |
Utilities to test, launch, and extend Sisu applications.
|
org.eclipse.sisu.osgi | |
org.eclipse.sisu.space |
Customizable scanning of bean implementations.
|
org.eclipse.sisu.wire |
Customizable wiring of unresolved dependencies.
|
org.sonatype.inject |
Deprecated; new applications should use
org.eclipse.sisu . |