/* * Copyright 2009 Red Hat, Inc. * * Red Hat licenses this file to you under the Apache License, version 2.0 * (the "License"); you may not use this file except in compliance with the * License. You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ package com.linkedin.databus.container.netty; import org.jboss.netty.channel.ChannelPipeline; import org.jboss.netty.channel.ChannelPipelineFactory; import com.linkedin.databus2.core.container.netty.HttpServerPipelineFactory; /** * Extends the {@link HttpServerPipelineFactory} with relay-specific handlers; */ public class HttpRelayPipelineFactory implements ChannelPipelineFactory { private final HttpRelay _relay; private ChannelPipelineFactory _oldPipelineFactory; public HttpRelayPipelineFactory(HttpRelay relay, ChannelPipelineFactory oldPipelineFactory) { super(); _relay = relay; _oldPipelineFactory = oldPipelineFactory; } public ChannelPipeline getPipeline() throws Exception { // Create a default pipeline implementation. ChannelPipeline pipeline = _oldPipelineFactory.getPipeline(); RelayStatisticsCollectingHandler relayStatsHandler = new RelayStatisticsCollectingHandler(_relay); pipeline.addBefore("databusRequestRunner", "relayStatsCollector", relayStatsHandler); return pipeline; } }