/** * Start building a new class-based service binding. * <p> * Does NOT bind the service type itself as a contract type. * * @param <T> service type. * @param serviceType service class. * @return initialized binding builder. */ public <T> ClassBinding<T> bind(Class<T> serviceType) { ClassBinding<T> binding = Bindings.service(serviceType); internalBindings.add(binding); return binding; }
/** * Start building a new supplier instance-based service binding. * * @param <T> service type. * @param factory service instance. * @return initialized binding builder. */ public <T> SupplierInstanceBinding<T> bindFactory(Supplier<T> factory) { SupplierInstanceBinding<T> binding = Bindings.supplier(factory); internalBindings.add(binding); return binding; }
/** * Start building a new injection resolver binding. The injection resolver is naturally * considered to be a {@link javax.inject.Singleton singleton-scoped}. * <p> * There is no need to provide any additional information. Other method on {@link Binding} * will be ignored. * * @param <T> type of the injection resolver. * @param resolver injection resolver instance. * @return initialized binding builder. */ public <T extends InjectionResolver> InjectionResolverBinding<T> bind(T resolver) { InjectionResolverBinding<T> binding = Bindings.injectionResolver(resolver); internalBindings.add(binding); return binding; }
@Override protected void configure() { Provider<MultivaluedParameterExtractorProvider> extractorProvider = createManagedInstanceProvider(MultivaluedParameterExtractorProvider.class); Provider<ContainerRequest> requestProvider = createManagedInstanceProvider(ContainerRequest.class); FormDataParamValueParamProvider valueSupplier = new FormDataParamValueParamProvider(extractorProvider); bind(Bindings.service(valueSupplier).to(ValueParamProvider.class)); bind(Bindings.injectionResolver( new ParamInjectionResolver<>(valueSupplier, FormDataParam.class, requestProvider))); } });
if (providerModel != null) { Class<? extends Annotation> scope = providerModel.getScope(); binding = Bindings.service(resource).to(resourceClass); binding = Bindings.serviceAsContract(resourceClass);
@Override public Collection<Binding> getBindings() { invokeConfigure(); List<Binding> bindings = installed.stream() .flatMap(binder -> Bindings.getBindings(injectionManager, binder).stream()) .collect(Collectors.toList()); bindings.addAll(internalBindings); return bindings; }
/** * Start building a new generic type-based service binding. * <p> * Binds the generic service type itself as a contract type. * * @param serviceType generic service type information. * @return initialized binding builder. */ public ClassBinding<Object> bindAsContract(Type serviceType) { ClassBinding<Object> binding = Bindings.serviceAsContract(serviceType); internalBindings.add(binding); return binding; }
@Override public void initialize(InjectionManager injectionManager) { this.injectionManager = injectionManager; if (LOGGER.isLoggable(Level.FINE)) { LOGGER.fine(LocalizationMessages.CTX_LOOKUP_STARTED()); } ServletContext sc = injectionManager.getInstance(ServletContext.class); if (sc != null) { // servlet container ctx = WebApplicationContextUtils.getWebApplicationContext(sc); } else { // non-servlet container ctx = createSpringContext(); } if (ctx == null) { LOGGER.severe(LocalizationMessages.CTX_LOOKUP_FAILED()); return; } LOGGER.config(LocalizationMessages.CTX_LOOKUP_SUCESSFUL()); // initialize HK2 spring-bridge ImmediateHk2InjectionManager hk2InjectionManager = (ImmediateHk2InjectionManager) injectionManager; SpringBridge.getSpringBridge().initializeSpringBridge(hk2InjectionManager.getServiceLocator()); SpringIntoHK2Bridge springBridge = injectionManager.getInstance(SpringIntoHK2Bridge.class); springBridge.bridgeSpringBeanFactory(ctx); injectionManager.register(Bindings.injectionResolver(new AutowiredInjectResolver(ctx))); injectionManager.register(Bindings.service(ctx).to(ApplicationContext.class).named("SpringContext")); LOGGER.config(LocalizationMessages.SPRING_COMPONENT_PROVIDER_INITIALIZED()); }
if (providerModel != null) { Class<? extends Annotation> scope = providerModel.getScope(); binding = Bindings.service(resource).to(resourceClass); binding = Bindings.serviceAsContract(resourceClass);
@Override public void register(Binder binder) { for (Binding binding : Bindings.getBindings(this, binder)) { bindings.bind(binding); } }
/** * Start building a new generic type-based service binding. * <p> * Binds the generic service type itself as a contract type. * * @param serviceType generic service type information. * @return initialized binding builder. */ public ClassBinding<Object> bindAsContract(Type serviceType) { ClassBinding<Object> binding = Bindings.serviceAsContract(serviceType); internalBindings.add(binding); return binding; }
@Override public void done() { if (requestScopedComponents.size() > 0) { InstanceBinding<ForeignRequestScopeBridge> descriptor = Bindings .service((ForeignRequestScopeBridge) () -> requestScopedComponents) .to(ForeignRequestScopeBridge.class); injectionManager.register(descriptor); if (LOGGER.isLoggable(Level.CONFIG)) { LOGGER.config(LocalizationMessages.CDI_REQUEST_SCOPED_COMPONENTS_RECOGNIZED( listElements(new StringBuilder().append("\n"), requestScopedComponents).toString())); } } }
@Override protected void configure() { Provider<MultivaluedParameterExtractorProvider> extractorProvider = createManagedInstanceProvider(MultivaluedParameterExtractorProvider.class); Provider<ContainerRequest> requestProvider = createManagedInstanceProvider(ContainerRequest.class); FormDataParamValueParamProvider valueSupplier = new FormDataParamValueParamProvider(extractorProvider); bind(Bindings.service(valueSupplier).to(ValueParamProvider.class)); bind(Bindings.injectionResolver( new ParamInjectionResolver<>(valueSupplier, FormDataParam.class, requestProvider))); } });
/** * Start building a new supplier instance-based service binding. * * @param <T> service type. * @param factory service instance. * @return initialized binding builder. */ public <T> SupplierInstanceBinding<T> bindFactory(Supplier<T> factory) { SupplierInstanceBinding<T> binding = Bindings.supplier(factory); internalBindings.add(binding); return binding; }
if (providerModel != null) { Class<? extends Annotation> scope = providerModel.getScope(); binding = Bindings.service(resource).to(resourceClass); binding = Bindings.serviceAsContract(resourceClass);
@Override public Collection<Binding> getBindings() { invokeConfigure(); List<Binding> bindings = installed.stream() .flatMap(binder -> Bindings.getBindings(injectionManager, binder).stream()) .collect(Collectors.toList()); bindings.addAll(internalBindings); return bindings; }
/** * Start building a new injection resolver binding. The injection resolver is naturally * considered to be a {@link javax.inject.Singleton singleton-scoped}. * <p> * There is no need to provide any additional information. Other method on {@link Binding} * will be ignored. * * @param <T> type of the injection resolver. * @param resolver injection resolver instance. * @return initialized binding builder. */ public <T extends InjectionResolver> InjectionResolverBinding<T> bind(T resolver) { InjectionResolverBinding<T> binding = Bindings.injectionResolver(resolver); internalBindings.add(binding); return binding; }
/** * Start building a new class-based service binding. * <p> * Binds the service type itself as a contract type. * * @param <T> service type. * @param serviceType service class. * @return initialized binding builder. */ public <T> ClassBinding<T> bindAsContract(Class<T> serviceType) { ClassBinding<T> binding = Bindings.serviceAsContract(serviceType); internalBindings.add(binding); return binding; }
private InjectionManager initInjectionManager(InjectionManager injectionManager) { injectionManager.register(Bindings.service(injectionManager).to(InjectionManager.class)); return injectionManager; } }
@Override public void initialize(InjectionManager injectionManager) { this.injectionManager = injectionManager; if (LOGGER.isLoggable(Level.FINE)) { LOGGER.fine(LocalizationMessages.CTX_LOOKUP_STARTED()); } ServletContext sc = injectionManager.getInstance(ServletContext.class); if (sc != null) { // servlet container ctx = WebApplicationContextUtils.getWebApplicationContext(sc); } else { // non-servlet container ctx = createSpringContext(); } if (ctx == null) { LOGGER.severe(LocalizationMessages.CTX_LOOKUP_FAILED()); return; } LOGGER.config(LocalizationMessages.CTX_LOOKUP_SUCESSFUL()); // initialize HK2 spring-bridge ImmediateHk2InjectionManager hk2InjectionManager = (ImmediateHk2InjectionManager) injectionManager; SpringBridge.getSpringBridge().initializeSpringBridge(hk2InjectionManager.getServiceLocator()); SpringIntoHK2Bridge springBridge = injectionManager.getInstance(SpringIntoHK2Bridge.class); springBridge.bridgeSpringBeanFactory(ctx); injectionManager.register(Bindings.injectionResolver(new AutowiredInjectResolver(ctx))); injectionManager.register(Bindings.service(ctx).to(ApplicationContext.class).named("SpringContext")); LOGGER.config(LocalizationMessages.SPRING_COMPONENT_PROVIDER_INITIALIZED()); }