Package org.eclipse.sisu.bean
package org.eclipse.sisu.bean
Customizable injection of bean properties, based on https://github.com/google/guice/wiki/CustomInjections.
For example:
new AbstractModule() {
@Override protected void configure() {
bindListener( Matchers.any(), new BeanListener( new MyBeanBinder() ) );
}
}
MyBeanBinder will be asked to supply a PropertyBinder for each bean type, say Foo.
That PropertyBinder will be asked to supply a PropertyBinding for each property (field or setter) in Foo.
Those PropertyBindings are then used to automatically configure any injected instances of Foo.
-
ClassDescriptionProvides custom
PropertyBinders for beans that contain one or more properties.TypeListenerthat listens for bean types and arranges for their properties to be injected.Service that manages the lifecycle of beans.Iterablethat iterates over potential bean properties in a class hierarchy.BeanProperty<T>Represents a bean property such as a field or setter method.Schedules safe activation of beans even when cyclic dependencies are involved.
Takes advantage of the new Guice ProvisionListener SPI, if available at runtime.Iterablethat iterates over declared members of a class hierarchy.Enumimplementation that provides different views of a class's members.Annotates class hierarchies that don't want setter injection.BeanManagerthat manages JSR250 beans and schedules lifecycle events.Allows testing if a class should be flushed from the cacheGuiceModulethat provides lifecycle management by followingPostConstructandPreDestroyannotations, or corresponding JSR250PostConstructandPreDestroyannotations.Provides customPropertyBindings for bean properties such as fields or setter methods.Represents a bean property that has been bound by aPropertyBinder.