
net.winterly.rxjersey.server.rxjava2.MaybeMethodDispatcher Maven / Gradle / Ivy
package net.winterly.rxjersey.server.rxjava2;
import io.reactivex.*;
import net.winterly.rxjersey.server.RxMethodDispatcher;
import net.winterly.rxjersey.server.RxMethodDispatcherProvider;
import org.glassfish.hk2.api.IterableProvider;
import org.glassfish.hk2.api.ServiceLocator;
import org.glassfish.jersey.server.ContainerRequest;
import org.glassfish.jersey.server.internal.process.AsyncContext;
import org.glassfish.jersey.server.spi.internal.ResourceMethodDispatcher;
import javax.inject.Inject;
import javax.ws.rs.ProcessingException;
import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
public class MaybeMethodDispatcher extends RxMethodDispatcher {
@Context
private javax.inject.Provider containerRequestContext;
@Context
private IterableProvider requestInterceptors;
public MaybeMethodDispatcher(ResourceMethodDispatcher originalDispatcher) {
super(originalDispatcher);
}
@Override
public void dispatch(AsyncContext asyncContext, ResourceMethodDispatcher dispatcher, Object resource, ContainerRequest request) throws ProcessingException {
final ContainerRequestContext requestContext = containerRequestContext.get();
Completable intercept = Flowable.fromIterable(requestInterceptors)
.flatMapCompletable(interceptor -> interceptor.intercept(requestContext));
Maybe
© 2015 - 2025 Weber Informatics LLC | Privacy Policy