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 uses
ServiceLocatorUtilities.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
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean
justInTimeResolution
(Injectee failedInjectionPoint) This method will be called whenever an injection point cannot be resolved.
-
Field Details
-
locator
-
-
Constructor Details
-
GreedyResolver
-
-
Method Details
-
justInTimeResolution
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
-