An
InitBallot is injected by the container into a bean which declares a dependency on it. By doing so, the bean enjoins itself into the startup contract of the framework services. Thus, it is expected to call {@link #voteForInit()}to indicate that it is okay to proceed with initialization. The class must be parameterized with a class which represents the startup dependency.
The container imposes a fixed amount of time for which there must be a call to {@link #voteForInit()}. If the call is not made within this time period, then the dependency will be deemed unsatisified and the container will produce an error.
@param < T> A type reference to be used to uniquely identify the dependency. This is typically the same classwhich declares the InitBallot, but not necessarily. If more than component injects an InitBallot with the same type parameter, they will all represent the same dependency.
@author Mike Brock