@Override public void bind(DynamicConfiguration config) { Injections.addBinding( Injections.newFactoryBinder(this).to(type).in(Singleton.class), config); Injections.addBinding( Injections.newBinder(this).to(ValueFactoryProvider.class), config); } }
@SuppressWarnings("unchecked") private <T> void bindInstance(final T instance, final DynamicConfiguration dc) { for (final Class contract : Providers.getProviderContracts(instance.getClass())) { Injections.addBinding(Injections.newBinder(instance).to(contract).qualifiedBy(CustomAnnotationLiteral.INSTANCE), dc); } }
@SuppressWarnings("unchecked") private <T> void bindInstance(final T instance, final DynamicConfiguration dc) { for (final Class contract : Providers.getProviderContracts(instance.getClass())) { Injections.addBinding(Injections.newBinder(instance).to(contract).qualifiedBy(CustomAnnotationLiteral.INSTANCE), dc); } }
@SuppressWarnings("unchecked") private <T> void bindInstance(final T instance, final DynamicConfiguration dc) { for (final Class contract : Providers.getProviderContracts(instance.getClass())) { Injections.addBinding(Injections.newBinder(instance).to(contract).qualifiedBy(CustomAnnotationLiteral.INSTANCE), dc); } }
/** * Binds {@code resourceClass} into HK2 context as singleton. * * The bound class is then cached internally so that any sub-sequent attempt to bind that class * as a singleton is silently ignored. * * @param resource singleton resource instance that should be bound as singleton. If the class is not * annotated with {@link javax.inject.Singleton Singleton annotation} it * will be ignored by this method. */ public <T> void bindResourceIfSingleton(T resource) { final Class<?> resourceClass = resource.getClass(); if (bindingCache.contains(resourceClass)) { return; } synchronized (bindingCacheLock) { if (bindingCache.contains(resourceClass)) { return; } if (getScope(resourceClass) == Singleton.class) { final DynamicConfiguration dc = Injections.getConfiguration(locator); //noinspection unchecked Injections.addBinding(Injections.newBinder(resource).to((Class<T>) resourceClass), dc); dc.commit(); } bindingCache.add(resourceClass); } }
/** * Binds {@code resourceClass} into HK2 context as singleton. * * The bound class is then cached internally so that any sub-sequent attempt to bind that class * as a singleton is silently ignored. * * @param resource singleton resource instance that should be bound as singleton. If the class is not * annotated with {@link javax.inject.Singleton Singleton annotation} it * will be ignored by this method. */ public <T> void bindResourceIfSingleton(T resource) { final Class<?> resourceClass = resource.getClass(); if (bindingCache.contains(resourceClass)) { return; } synchronized (bindingCacheLock) { if (bindingCache.contains(resourceClass)) { return; } if (getScope(resourceClass) == Singleton.class) { final DynamicConfiguration dc = Injections.getConfiguration(locator); //noinspection unchecked Injections.addBinding(Injections.newBinder(resource).to((Class<T>) resourceClass), dc); dc.commit(); } bindingCache.add(resourceClass); } }
private void registerManagedObjectsFinalizer(ServiceLocator locator) { DynamicConfiguration dc = Injections.getConfiguration(locator); ScopedBindingBuilder<ManagedObjectsFinalizer> binder = Injections.newBinder(ManagedObjectsFinalizer.class) .to(ManagedObjectsFinalizer.class) .in(Singleton.class); Injections.addBinding(binder, dc); dc.commit(); }
private void registerManagedObjectsFinalizer(ServiceLocator locator) { DynamicConfiguration dc = Injections.getConfiguration(locator); ScopedBindingBuilder<ManagedObjectsFinalizer> binder = Injections.newBinder(ManagedObjectsFinalizer.class) .to(ManagedObjectsFinalizer.class) .in(Singleton.class); Injections.addBinding(binder, dc); dc.commit(); }
private void registerManagedObjectsFinalizer(ServiceLocator locator) { DynamicConfiguration dc = Injections.getConfiguration(locator); ScopedBindingBuilder<ManagedObjectsFinalizer> binder = Injections.newBinder(ManagedObjectsFinalizer.class) .to(ManagedObjectsFinalizer.class) .in(Singleton.class); Injections.addBinding(binder, dc); dc.commit(); }
private void bindWaeRestoringExceptionMapper() { final DynamicConfiguration dc = Injections.getConfiguration(locator); final ServiceBindingBuilder bindingBuilder = Injections.newFactoryBinder(new CdiFactory(TransactionalExceptionMapper.class, locator, beanManager, true)); bindingBuilder.to(ExceptionMapper.class); Injections.addBinding(bindingBuilder, dc); dc.commit(); }
private void bindHk2ClassAnalyzer() { final ClassAnalyzer defaultClassAnalyzer = locator.getService(ClassAnalyzer.class, ClassAnalyzer.DEFAULT_IMPLEMENTATION_NAME); final int skippedElements = methodsToSkip.size() + fieldsToSkip.size(); final ClassAnalyzer customizedClassAnalyzer = skippedElements > 0 ? new InjecteeSkippingAnalyzer(defaultClassAnalyzer, methodsToSkip, fieldsToSkip) : defaultClassAnalyzer; final DynamicConfiguration dc = Injections.getConfiguration(locator); final ScopedBindingBuilder bindingBuilder = Injections.newBinder(customizedClassAnalyzer); bindingBuilder.analyzeWith(ClassAnalyzer.DEFAULT_IMPLEMENTATION_NAME) .to(ClassAnalyzer.class) .named(CDI_CLASS_ANALYZER); Injections.addBinding(bindingBuilder, dc); dc.commit(); }
/** * Bind contract provider model to a provider instance using the supplied * HK2 dynamic configuration. * * Scope value specified in the {@link ContractProvider contract provider model} * is ignored as instances can only be bound as "singletons". * * @param providerInstance provider instance. * @param model contract provider model. * @param dc HK2 dynamic service locator configuration. */ public static void bindProvider( final Object providerInstance, final ContractProvider model, final DynamicConfiguration dc) { for (final Class contract : model.getContracts()) { final ScopedBindingBuilder bindingBuilder = Injections .newBinder(providerInstance).qualifiedBy(CustomAnnotationLiteral.INSTANCE); //noinspection unchecked bindingBuilder.to(contract); final int priority = model.getPriority(contract); if (priority > ContractProvider.NO_PRIORITY) { bindingBuilder.ranked(priority); } Injections.addBinding(bindingBuilder, dc); } }
/** * Bind contract provider model to a provider instance using the supplied * HK2 dynamic configuration. * * Scope value specified in the {@link ContractProvider contract provider model} * is ignored as instances can only be bound as "singletons". * * @param providerInstance provider instance. * @param model contract provider model. * @param dc HK2 dynamic service locator configuration. */ public static void bindProvider( final Object providerInstance, final ContractProvider model, final DynamicConfiguration dc) { for (final Class contract : model.getContracts()) { final ScopedBindingBuilder bindingBuilder = Injections .newBinder(providerInstance).qualifiedBy(CustomAnnotationLiteral.INSTANCE); //noinspection unchecked bindingBuilder.to(contract); final int priority = model.getPriority(contract); if (priority > ContractProvider.NO_PRIORITY) { bindingBuilder.ranked(priority); } Injections.addBinding(bindingBuilder, dc); } }
/** * Bind contract provider model to a provider instance using the supplied * HK2 dynamic configuration. * * Scope value specified in the {@link ContractProvider contract provider model} * is ignored as instances can only be bound as "singletons". * * @param providerInstance provider instance. * @param model contract provider model. * @param dc HK2 dynamic service locator configuration. */ public static void bindProvider( final Object providerInstance, final ContractProvider model, final DynamicConfiguration dc) { for (final Class contract : model.getContracts()) { final ScopedBindingBuilder bindingBuilder = Injections .newBinder(providerInstance).qualifiedBy(CustomAnnotationLiteral.INSTANCE); //noinspection unchecked bindingBuilder.to(contract); final int priority = model.getPriority(contract); if (priority > ContractProvider.NO_PRIORITY) { bindingBuilder.ranked(priority); } Injections.addBinding(bindingBuilder, dc); } }
/** * Bind contract provider model to a provider class using the supplied HK2 dynamic configuration. * * @param providerClass provider class. * @param model contract provider model. * @param dc HK2 dynamic service locator configuration. */ public static void bindProvider( final Class<?> providerClass, final ContractProvider model, final DynamicConfiguration dc) { for (final Class contract : model.getContracts()) { final ScopedBindingBuilder bindingBuilder = Injections.newBinder(providerClass) .in(model.getScope()) .qualifiedBy(CustomAnnotationLiteral.INSTANCE); //noinspection unchecked bindingBuilder.to(contract); final int priority = model.getPriority(contract); if (priority > ContractProvider.NO_PRIORITY) { bindingBuilder.ranked(priority); } Injections.addBinding(bindingBuilder, dc); } }
/** * Bind contract provider model to a provider class using the supplied HK2 dynamic configuration. * * @param providerClass provider class. * @param model contract provider model. * @param dc HK2 dynamic service locator configuration. */ public static void bindProvider( final Class<?> providerClass, final ContractProvider model, final DynamicConfiguration dc) { for (final Class contract : model.getContracts()) { final ScopedBindingBuilder bindingBuilder = Injections.newBinder(providerClass) .in(model.getScope()) .qualifiedBy(CustomAnnotationLiteral.INSTANCE); //noinspection unchecked bindingBuilder.to(contract); final int priority = model.getPriority(contract); if (priority > ContractProvider.NO_PRIORITY) { bindingBuilder.ranked(priority); } Injections.addBinding(bindingBuilder, dc); } }
/** * Bind contract provider model to a provider class using the supplied HK2 dynamic configuration. * * @param providerClass provider class. * @param model contract provider model. * @param dc HK2 dynamic service locator configuration. */ public static void bindProvider( final Class<?> providerClass, final ContractProvider model, final DynamicConfiguration dc) { for (final Class contract : model.getContracts()) { final ScopedBindingBuilder bindingBuilder = Injections.newBinder(providerClass) .in(model.getScope()) .qualifiedBy(CustomAnnotationLiteral.INSTANCE); //noinspection unchecked bindingBuilder.to(contract); final int priority = model.getPriority(contract); if (priority > ContractProvider.NO_PRIORITY) { bindingBuilder.ranked(priority); } Injections.addBinding(bindingBuilder, dc); } }
@SuppressWarnings("unchecked") private <T> void bindClass(final Class<T> clazz, final ServiceLocator locator, final DynamicConfiguration dc, final boolean isResource) { final Class<? extends Annotation> scope = getProviderScope(clazz); if (isResource) { final ActiveDescriptor<?> descriptor = dc.bind(BuilderHelper.activeLink(clazz).to(clazz).in(scope).build()); for (final Class contract : Providers.getProviderContracts(clazz)) { final AliasDescriptor aliasDescriptor = new AliasDescriptor(locator, descriptor, contract.getName(), null); aliasDescriptor.setScope(scope.getName()); aliasDescriptor.addQualifierAnnotation(CustomAnnotationLiteral.INSTANCE); dc.bind(aliasDescriptor); } } else { final ScopedBindingBuilder<T> bindingBuilder = Injections.newBinder(clazz).in(scope).qualifiedBy(CustomAnnotationLiteral.INSTANCE); for (final Class contract : Providers.getProviderContracts(clazz)) { bindingBuilder.to(contract); } Injections.addBinding(bindingBuilder, dc); } }
@SuppressWarnings("unchecked") private <T> void bindClass(final Class<T> clazz, final ServiceLocator locator, final DynamicConfiguration dc, final boolean isResource) { final Class<? extends Annotation> scope = getProviderScope(clazz); if (isResource) { final ActiveDescriptor<?> descriptor = dc.bind(BuilderHelper.activeLink(clazz).to(clazz).in(scope).build()); for (final Class contract : Providers.getProviderContracts(clazz)) { final AliasDescriptor aliasDescriptor = new AliasDescriptor(locator, descriptor, contract.getName(), null); aliasDescriptor.setScope(scope.getName()); aliasDescriptor.addQualifierAnnotation(CustomAnnotationLiteral.INSTANCE); dc.bind(aliasDescriptor); } } else { final ScopedBindingBuilder<T> bindingBuilder = Injections.newBinder(clazz).in(scope).qualifiedBy(CustomAnnotationLiteral.INSTANCE); for (final Class contract : Providers.getProviderContracts(clazz)) { bindingBuilder.to(contract); } Injections.addBinding(bindingBuilder, dc); } }
@SuppressWarnings("unchecked") private <T> void bindClass(final Class<T> clazz, final ServiceLocator locator, final DynamicConfiguration dc, final boolean isResource) { final Class<? extends Annotation> scope = getProviderScope(clazz); if (isResource) { final ActiveDescriptor<?> descriptor = dc.bind(BuilderHelper.activeLink(clazz).to(clazz).in(scope).build()); for (final Class contract : Providers.getProviderContracts(clazz)) { final AliasDescriptor aliasDescriptor = new AliasDescriptor(locator, descriptor, contract.getName(), null); aliasDescriptor.setScope(scope.getName()); aliasDescriptor.addQualifierAnnotation(CustomAnnotationLiteral.INSTANCE); dc.bind(aliasDescriptor); } } else { final ScopedBindingBuilder<T> bindingBuilder = Injections.newBinder(clazz).in(scope).qualifiedBy(CustomAnnotationLiteral.INSTANCE); for (final Class contract : Providers.getProviderContracts(clazz)) { bindingBuilder.to(contract); } Injections.addBinding(bindingBuilder, dc); } }