Search in sources :

Example 6 with Binder

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();
    }
}
Also used : ServiceLocator(org.glassfish.hk2.api.ServiceLocator) ServiceLocatorRuntimeBean(org.jvnet.hk2.external.runtime.ServiceLocatorRuntimeBean)

Example 7 with Binder

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();
}
Also used : SupplierClassBinding(org.glassfish.jersey.internal.inject.SupplierClassBinding) AliasBinding(org.glassfish.jersey.internal.inject.AliasBinding) ClassBinding(org.glassfish.jersey.internal.inject.ClassBinding) InstanceBinding(org.glassfish.jersey.internal.inject.InstanceBinding) Binding(org.glassfish.jersey.internal.inject.Binding) SupplierInstanceBinding(org.glassfish.jersey.internal.inject.SupplierInstanceBinding) InjectionResolverBinding(org.glassfish.jersey.internal.inject.InjectionResolverBinding) DynamicConfiguration(org.glassfish.hk2.api.DynamicConfiguration)

Example 8 with Binder

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));
}
Also used : ServiceLocator(org.glassfish.hk2.api.ServiceLocator) AbstractBinder(org.glassfish.hk2.utilities.binding.AbstractBinder) InjectionManager(org.glassfish.jersey.internal.inject.InjectionManager) Test(org.junit.Test)

Aggregations

AbstractBinder (org.glassfish.hk2.utilities.binding.AbstractBinder)5 ServiceLocator (org.glassfish.hk2.api.ServiceLocator)4 DynamicConfiguration (org.glassfish.hk2.api.DynamicConfiguration)3 Test (org.junit.Test)3 DynamicConfigurationService (org.glassfish.hk2.api.DynamicConfigurationService)2 ServiceLocatorFactory (org.glassfish.hk2.api.ServiceLocatorFactory)2 InjectionManager (org.glassfish.jersey.internal.inject.InjectionManager)2 InjectionPoint (javax.enterprise.inject.spi.InjectionPoint)1 ClassAnalyzer (org.glassfish.hk2.api.ClassAnalyzer)1 AbstractBinder (org.glassfish.jersey.internal.inject.AbstractBinder)1 AliasBinding (org.glassfish.jersey.internal.inject.AliasBinding)1 Binder (org.glassfish.jersey.internal.inject.Binder)1 Binding (org.glassfish.jersey.internal.inject.Binding)1 ClassBinding (org.glassfish.jersey.internal.inject.ClassBinding)1 InjectionResolverBinding (org.glassfish.jersey.internal.inject.InjectionResolverBinding)1 InstanceBinding (org.glassfish.jersey.internal.inject.InstanceBinding)1 SupplierClassBinding (org.glassfish.jersey.internal.inject.SupplierClassBinding)1 SupplierInstanceBinding (org.glassfish.jersey.internal.inject.SupplierInstanceBinding)1 ResourceConfig (org.glassfish.jersey.server.ResourceConfig)1 CoreMatchers.containsString (org.hamcrest.CoreMatchers.containsString)1