package fi.iki.mkuokkanen.seda.api;
import static com.google.common.base.Preconditions.checkNotNull;
import javax.inject.Inject;
import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.handler.ContextHandler;
import org.eclipse.jetty.server.handler.HandlerList;
import com.google.inject.Provider;
import fi.iki.mkuokkanen.seda.api.resources.ResourceContext;
import fi.iki.mkuokkanen.seda.api.websocket.WebSocketContext;
/**
* Provides proper Jetty Handlers
*
* @author mkuokkanen
*/
public class HandlerListProvider implements Provider<HandlerList> {
private final ContextHandler websocketContext;
private final ContextHandler resourcesContext;
@Inject
public HandlerListProvider(
@ResourceContext ContextHandler resourceContextHandler,
@WebSocketContext ContextHandler websocketContextHandler) {
this.resourcesContext = checkNotNull(resourceContextHandler);
this.websocketContext = checkNotNull(websocketContextHandler);
}
@Override
public HandlerList get() {
HandlerList handlers = new HandlerList();
handlers.setHandlers(new Handler[] { websocketContext, resourcesContext });
return handlers;
}
}