package netflix.karyon.jersey.blocking;
import static com.netflix.config.ConfigurationManager.getConfigInstance;
import io.netty.buffer.ByteBuf;
import io.reactivex.netty.protocol.http.server.HttpServerRequest;
import io.reactivex.netty.protocol.http.server.HttpServerResponse;
import netflix.karyon.KaryonBootstrap;
import rx.Observable;
import netflix.karyon.transport.interceptor.DuplexInterceptor;
import com.google.inject.AbstractModule;
import com.google.inject.Singleton;
import com.netflix.governator.annotations.Modules;
@KaryonBootstrap( name = "jersey-blocking" )
@Singleton
@Modules(include = {
JerseyBlockingModule.TestModule.class,
JerseyBlockingModule.KaryonRxRouterModuleImpl.class,
})
public interface JerseyBlockingModule {
class TestModule extends AbstractModule {
@Override
protected void configure() {
getConfigInstance().addProperty("com.sun.jersey.config.property.packages", "netflix.karyon.jersey.blocking");
}
}
class KaryonRxRouterModuleImpl extends KaryonJerseyModule {
@Override
protected void configureServer() {
server().port( 7001 ).threadPoolSize( 200 );
}
}
public class AccessInterceptor implements DuplexInterceptor<HttpServerRequest<ByteBuf>, HttpServerResponse<ByteBuf>> {
@Override
public Observable<Void> in(HttpServerRequest<ByteBuf> request, HttpServerResponse<ByteBuf> response) {
return Observable.empty();
}
@Override
public Observable<Void> out(HttpServerResponse<ByteBuf> response) {
return Observable.empty();
}
}
}