Package org.glassfish.hk2.utilities
Class GreedyResolver
- java.lang.Object
-
- org.glassfish.hk2.utilities.GreedyResolver
-
- All Implemented Interfaces:
JustInTimeInjectionResolver
@Singleton @Visibility(LOCAL) public class GreedyResolver extends Object implements JustInTimeInjectionResolver
This is a greedy resolve that will add in any class that has failed to be resolved. It usesServiceLocatorUtilities.addClasses(org.glassfish.hk2.api.ServiceLocator, Class...)
in order to add classes, and hence will use the default class analyzer to discover injection points and constructors.If the injected class is an interface the interface may use the
GreedyDefaultImplementation
in order to specify the class that should be used when another implementation of this interface cannot be found.WARNING: This resolve should be used with care as it could cause unexpected class files to be instantiated by hk2
- Author:
- jwells
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
justInTimeResolution(Injectee failedInjectionPoint)
This method will be called whenever an injection point cannot be resolved.
-
-
-
Method Detail
-
justInTimeResolution
public boolean justInTimeResolution(Injectee failedInjectionPoint)
Description copied from interface:JustInTimeInjectionResolver
This method will be called whenever an injection point cannot be resolved. If this method adds anything to the configuration it should return true. Otherwise it should return false. The injection point that failed to be resolved is given in failedInjectionPoint.If this method throws an exception that exception will be added to the set of exceptions in the MultiException that may be thrown from the injection resolver.
This method can be called on multiple threads with different or the same
Injectee
. Therefore care must be taken in this method to not add the same descriptor more than once- Specified by:
justInTimeResolution
in interfaceJustInTimeInjectionResolver
- Parameters:
failedInjectionPoint
- The injection point that failed to resolve- Returns:
- true if this method has added a descriptor to the
ServiceLocator
which may be used to resolve theInjectee
. False if this method did not add a descriptor to theServiceLocator
that might help resolve the injection point
-
-