Package org.eclipse.sisu.bean
Customizable injection of bean properties, based on http://code.google.com/p/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.
-
Interface Summary Interface Description BeanBinder Provides customPropertyBinders for beans that contain one or more properties.BeanManager Service that manages the lifecycle of beans.BeanProperty<T> Represents a bean property such as a field or setter method.PropertyBinder Provides customPropertyBindings for bean properties such as fields or setter methods.PropertyBinding Represents a bean property that has been bound by aPropertyBinder. -
Class Summary Class Description BeanInjector<B> MembersInjectorthat takesPropertyBindings and applies them to bean instances.BeanLifecycle Represents the JSR250 lifecycle for a particular bean type.BeanListener TypeListenerthat listens for bean types and arranges for their properties to be injected.BeanProperties Iterablethat iterates over potential bean properties in a class hierarchy.BeanPropertyField<T> BeanPropertybacked by aField.BeanPropertyIterator<T> Read-onlyIteratorthat picks out potential bean properties from declared members.BeanPropertySetter<T> BeanPropertybacked by a single-parameter setterMethod.BeanScheduler Schedules safe activation of beans even when cyclic dependencies are involved.
Takes advantage of the new Guice ProvisionListener SPI, if available at runtime.BeanScheduler.CycleActivator Listens to provisioning events in order to determine safe activation points.DeclaredMembers Iterablethat iterates over declared members of a class hierarchy.DeclaredMembers.MemberIterator Read-onlyIteratorthat uses rollingDeclaredMembers.Views to traverse the different members.LifecycleBuilder BuildsBeanLifecycles by searching class hierarchies for JSR250 annotations.LifecycleManager BeanManagerthat manages JSR250 beans and schedules lifecycle events.LifecycleModule GuiceModulethat provides JSR250 lifecycle management by followingPostConstructandPreDestroyannotations. -
Enum Summary Enum Description DeclaredMembers.View Enumimplementation that provides different views of a class's members. -
Annotation Types Summary Annotation Type Description IgnoreSetters Annotates class hierarchies that don't want setter injection.