use of org.glassfish.hk2.utilities.Binder in project jersey by jersey.
the class HK2InjectionManager method initialize.
@Override
public void initialize(String name, Object parent, Binder... binders) {
ServiceLocator parentLocator = resolveServiceLocatorParent(parent);
this.locator = createLocator(name, parentLocator);
// Register all components needed for proper HK2 locator bootstrap
Hk2Helper.bind(locator, new Hk2BootstrapBinder(this, CompositeBinder.wrap(binders)));
this.locator.setDefaultClassAnalyzerName(JerseyClassAnalyzer.NAME);
// clear HK2 caches
ServiceLocatorRuntimeBean serviceLocatorRuntimeBean = locator.getService(ServiceLocatorRuntimeBean.class);
if (serviceLocatorRuntimeBean != null) {
if (LOGGER.isLoggable(Level.FINE)) {
LOGGER.fine(LocalizationMessages.HK_2_CLEARING_CACHE(serviceLocatorRuntimeBean.getServiceCacheSize(), serviceLocatorRuntimeBean.getReflectionCacheSize()));
}
serviceLocatorRuntimeBean.clearReflectionCache();
serviceLocatorRuntimeBean.clearServiceCache();
}
}
use of org.glassfish.hk2.utilities.Binder in project jersey by jersey.
the class Hk2Helper method bind.
/**
* Bind descriptors to Hk2-like {@link Binder}.
*
* @param locator HK2 locator.
* @param descriptors collection of descriptors.
*/
static void bind(ServiceLocator locator, Iterable<Binding> descriptors) {
DynamicConfiguration dc = getDynamicConfiguration(locator);
for (Binding binding : descriptors) {
bindBinding(locator, dc, binding);
}
dc.commit();
}
use of org.glassfish.hk2.utilities.Binder in project jersey by jersey.
the class InjectionManagerTest method testServiceLocatorParent.
@Test
public void testServiceLocatorParent() {
AbstractBinder binder = new AbstractBinder() {
@Override
protected void configure() {
bindAsContract(EnglishGreeting.class);
}
};
ServiceLocator parentLocator = ServiceLocatorUtilities.bind(binder);
InjectionManager injectionManager = new HK2InjectionManager();
injectionManager.initialize(parentLocator);
assertNotNull(injectionManager.getInstance(EnglishGreeting.class));
}
Aggregations