Java tutorial
/** * Copyright 2014 LinkedIn Corp. Licensed 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. */ package com.linkedin.proxy.netty; import io.netty.channel.ChannelPipeline; import io.netty.channel.socket.SocketChannel; import io.netty.handler.codec.http.HttpObjectAggregator; import io.netty.handler.codec.http.HttpRequestDecoder; import io.netty.handler.codec.http.HttpResponseEncoder; import java.util.Properties; import org.apache.log4j.Logger; import com.linkedin.proxy.pool.ConnectionPool; public class RocksdbInitializer extends BaseInitializer { private static final Logger m_log = Logger.getLogger(RocksdbInitializer.class); private ConnectionPool m_connPool; public RocksdbInitializer(Properties prop, ConnectionPool connPool) { super(prop); m_connPool = connPool; } public void initChannel(SocketChannel ch) { String thrName = Thread.currentThread().getName() + ": "; m_log.debug(thrName + "Initializing SocketChannel..."); ChannelPipeline p = ch.pipeline(); //HttpMessage encoder/decoder p.addLast("httpDecoder", new HttpRequestDecoder()); p.addLast("httpAggr", new HttpObjectAggregator(_httpBufferSize)); p.addLast("httpEncoder", new HttpResponseEncoder()); //Rocksdb encoder/decoder p.addLast("rocksdbDecoder", new RocksdbQueryDecoder()); p.addLast("rocksdbEncoder", new RocksdbQueryEncoder()); //Rocksdb query handler p.addLast("rocksdbHandler", new RocksdbQueryHandler(m_connPool)); } }