/** * Get the iterable of all providers (custom and default) registered for the given service provider contract * in the underlying {@link InjectionManager injection manager} container. * * @param <T> service provider contract Java type. * @param injectionManager underlying injection manager. * @param contract service provider contract. * @return iterable of all available service provider instances for the contract. Return value is never null. */ public static <T> Iterable<T> getAllProviders(InjectionManager injectionManager, Class<T> contract) { return getAllProviders(injectionManager, contract, (Comparator<T>) null); }
/** * Get the iterable of all providers (custom and default) registered for the given service provider contract * in the underlying {@link InjectionManager injection manager} container. * * @param <T> service provider contract Java type. * @param injectionManager underlying injection manager. * @param contract service provider contract. * @return iterable of all available service provider instances for the contract. Return value is never null. */ public static <T> Iterable<T> getAllProviders(InjectionManager injectionManager, Class<T> contract) { return getAllProviders(injectionManager, contract, (Comparator<T>) null); }
/** * Constructor expecting {@link InjectionManager} to be injected. * * @param injectionManager injection manager to be injected. */ @Inject public EntityInspectorImpl(final InjectionManager injectionManager) { Spliterator<EntityProcessor> entities = Providers.getAllProviders(injectionManager, EntityProcessor.class, new RankedComparator<>()).spliterator(); this.entityProcessors = StreamSupport.stream(entities, false).collect(Collectors.toList()); }
/** * Create new common scope provider with injected {@link Configuration configuration} and * {@link InjectionManager injection manager}. */ @Inject public CommonScopeProvider(final Configuration config, final InjectionManager injectionManager) { this.config = config; Spliterator<ScopeResolver> resolverSpliterator = Providers.getAllProviders(injectionManager, ScopeResolver.class, new RankedComparator<>()).spliterator(); this.resolvers = StreamSupport.stream(resolverSpliterator, false).collect(Collectors.toList()); }
/** * Return the first found {@link AsyncContextDelegateProvider} * (via {@link Providers#getAllProviders(InjectionManager, Class)}) or {@code #DEFAULT_ASYNC_DELEGATE} if * other delegate cannot be found. * * @return a non-null AsyncContextDelegateProvider. */ private AsyncContextDelegateProvider getAsyncExtensionDelegate() { final Iterator<AsyncContextDelegateProvider> providers = Providers.getAllProviders(appHandler.getInjectionManager(), AsyncContextDelegateProvider.class).iterator(); if (providers.hasNext()) { return providers.next(); } return (request, response) -> DEFAULT_ASYNC_DELEGATE; }
/** * Return the first found {@link AsyncContextDelegateProvider} * (via {@link Providers#getAllProviders(InjectionManager, Class)}) or {@code #DEFAULT_ASYNC_DELEGATE} if * other delegate cannot be found. * * @return a non-null AsyncContextDelegateProvider. */ private AsyncContextDelegateProvider getAsyncExtensionDelegate() { final Iterator<AsyncContextDelegateProvider> providers = Providers.getAllProviders(appHandler.getInjectionManager(), AsyncContextDelegateProvider.class).iterator(); if (providers.hasNext()) { return providers.next(); } return (request, response) -> DEFAULT_ASYNC_DELEGATE; }
/** * Create client request filtering stage using the injection manager. May return {@code null}. * * @param injectionManager injection manager to be used. * @return configured request filtering stage, or {@code null} in case there are no * {@link ClientRequestFilter client request filters} registered in the injection manager. */ static ChainableStage<ClientRequest> createRequestFilteringStage(InjectionManager injectionManager) { RankedComparator<ClientRequestFilter> comparator = new RankedComparator<>(RankedComparator.Order.ASCENDING); Iterable<ClientRequestFilter> requestFilters = Providers.getAllProviders(injectionManager, ClientRequestFilter.class, comparator); return requestFilters.iterator().hasNext() ? new RequestFilteringStage(requestFilters) : null; }
/** * Create client response filtering stage using the injection manager. May return {@code null}. * * @param injectionManager injection manager to be used. * @return configured response filtering stage, or {@code null} in case there are no * {@link ClientResponseFilter client response filters} registered in the injection manager. */ static ChainableStage<ClientResponse> createResponseFilteringStage(InjectionManager injectionManager) { RankedComparator<ClientResponseFilter> comparator = new RankedComparator<>(RankedComparator.Order.DESCENDING); Iterable<ClientResponseFilter> responseFilters = Providers.getAllProviders(injectionManager, ClientResponseFilter.class, comparator); return responseFilters.iterator().hasNext() ? new ResponseFilterStage(responseFilters) : null; }
/** * Create client request filtering stage using the injection manager. May return {@code null}. * * @param injectionManager injection manager to be used. * @return configured request filtering stage, or {@code null} in case there are no * {@link ClientRequestFilter client request filters} registered in the injection manager. */ static ChainableStage<ClientRequest> createRequestFilteringStage(InjectionManager injectionManager) { RankedComparator<ClientRequestFilter> comparator = new RankedComparator<>(RankedComparator.Order.ASCENDING); Iterable<ClientRequestFilter> requestFilters = Providers.getAllProviders(injectionManager, ClientRequestFilter.class, comparator); return requestFilters.iterator().hasNext() ? new RequestFilteringStage(requestFilters) : null; }
/** * Create client response filtering stage using the injection manager. May return {@code null}. * * @param injectionManager injection manager to be used. * @return configured response filtering stage, or {@code null} in case there are no * {@link ClientResponseFilter client response filters} registered in the injection manager. */ static ChainableStage<ClientResponse> createResponseFilteringStage(InjectionManager injectionManager) { RankedComparator<ClientResponseFilter> comparator = new RankedComparator<>(RankedComparator.Order.DESCENDING); Iterable<ClientResponseFilter> responseFilters = Providers.getAllProviders(injectionManager, ClientResponseFilter.class, comparator); return responseFilters.iterator().hasNext() ? new ResponseFilterStage(responseFilters) : null; }
/** * Create new {@link org.glassfish.jersey.message.MessageBodyWorkers} initialization function * for requests and responses. * * @param requestRefProvider client request context reference injection provider. * @param workersProvider message body workers injection provider. * @param injectionManager injection manager. */ public RequestProcessingInitializationStage( Provider<Ref<ClientRequest>> requestRefProvider, MessageBodyWorkers workersProvider, InjectionManager injectionManager) { this.requestRefProvider = requestRefProvider; this.workersProvider = workersProvider; writerInterceptors = Collections.unmodifiableList( StreamSupport.stream( Providers.getAllProviders(injectionManager, WriterInterceptor.class, new RankedComparator<>()).spliterator(), false) .collect(Collectors.toList()) ); readerInterceptors = Collections.unmodifiableList( StreamSupport.stream( Providers.getAllProviders(injectionManager, ReaderInterceptor.class, new RankedComparator<>()).spliterator(), false) .collect(Collectors.toList()) ); }
/** * Create new {@link org.glassfish.jersey.message.MessageBodyWorkers} initialization function * for requests and responses. * * @param requestRefProvider client request context reference injection provider. * @param workersProvider message body workers injection provider. * @param injectionManager injection manager. */ public RequestProcessingInitializationStage( Provider<Ref<ClientRequest>> requestRefProvider, MessageBodyWorkers workersProvider, InjectionManager injectionManager) { this.requestRefProvider = requestRefProvider; this.workersProvider = workersProvider; writerInterceptors = Collections.unmodifiableList( StreamSupport.stream( Providers.getAllProviders(injectionManager, WriterInterceptor.class, new RankedComparator<>()).spliterator(), false) .collect(Collectors.toList()) ); readerInterceptors = Collections.unmodifiableList( StreamSupport.stream( Providers.getAllProviders(injectionManager, ReaderInterceptor.class, new RankedComparator<>()).spliterator(), false) .collect(Collectors.toList()) ); }
/** * Resolve the {@link FilterUrlMappingsProvider} service via hk2. * * Will only work in Servlet 3 container, as the older API version * does not provide access to the filter mapping structure. * * @return {@code FilterContextPath} instance, if available, {@code null} otherwise. */ private FilterUrlMappingsProvider getFilterUrlMappingsProvider() { FilterUrlMappingsProvider filterUrlMappingsProvider = null; final Iterator<FilterUrlMappingsProvider> providers = Providers.getAllProviders( getApplicationHandler().getInjectionManager(), FilterUrlMappingsProvider.class).iterator(); if (providers.hasNext()) { filterUrlMappingsProvider = providers.next(); } return filterUrlMappingsProvider; }
/** * Resolve the {@link FilterUrlMappingsProvider} service via hk2. * * Will only work in Servlet 3 container, as the older API version * does not provide access to the filter mapping structure. * * @return {@code FilterContextPath} instance, if available, {@code null} otherwise. */ private FilterUrlMappingsProvider getFilterUrlMappingsProvider() { FilterUrlMappingsProvider filterUrlMappingsProvider = null; final Iterator<FilterUrlMappingsProvider> providers = Providers.getAllProviders( getApplicationHandler().getInjectionManager(), FilterUrlMappingsProvider.class).iterator(); if (providers.hasNext()) { filterUrlMappingsProvider = providers.next(); } return filterUrlMappingsProvider; }
/** * Create client response filtering stage using the injection manager. May return {@code null}. * * @param injectionManager injection manager to be used. * @return configured response filtering stage, or {@code null} in case there are no * {@link ClientResponseFilter client response filters} registered in the injection manager. */ static ChainableStage<ClientResponse> createResponseFilteringStage(InjectionManager injectionManager) { RankedComparator<ClientResponseFilter> comparator = new RankedComparator<>(RankedComparator.Order.DESCENDING); Iterable<ClientResponseFilter> responseFilters = Providers.getAllProviders(injectionManager, ClientResponseFilter.class, comparator); return responseFilters.iterator().hasNext() ? new ResponseFilterStage(responseFilters) : null; }
/** * Create client request filtering stage using the injection manager. May return {@code null}. * * @param injectionManager injection manager to be used. * @return configured request filtering stage, or {@code null} in case there are no * {@link ClientRequestFilter client request filters} registered in the injection manager. */ static ChainableStage<ClientRequest> createRequestFilteringStage(InjectionManager injectionManager) { RankedComparator<ClientRequestFilter> comparator = new RankedComparator<>(RankedComparator.Order.ASCENDING); Iterable<ClientRequestFilter> requestFilters = Providers.getAllProviders(injectionManager, ClientRequestFilter.class, comparator); return requestFilters.iterator().hasNext() ? new RequestFilteringStage(requestFilters) : null; }
Iterable<RxInvokerProvider> allProviders = Providers.getAllProviders( this.requestContext.getInjectionManager(), RxInvokerProvider.class);
Iterable<RxInvokerProvider> allProviders = Providers.getAllProviders( this.requestContext.getInjectionManager(), RxInvokerProvider.class);
final Iterable<ResponseErrorMapper> mappers = Providers.getAllProviders(runtime.injectionManager, ResponseErrorMapper.class);
this.containerLifecycleListeners = Providers.getAllProviders(injectionManager, ContainerLifecycleListener.class);