### Question:
ConnectionPoolManager { public static ConnectionPoolManager initFromClientProperties(Properties properties) throws ClassNotFoundException { NettyClientProperties tcpClientProperties = PropertiesUtil.getClientPropFromProperties(properties); return initFromClientProperties(tcpClientProperties); }  FixedChannelPool getChannelPool(InetSocketAddress address); void shutdown(); int getMaxConn(); void setMaxConn(int maxConn); int getnThread(); void setnThread(int nThread); Bootstrap getBootstrap(); void setBootstrap(Bootstrap bootstrap); Class<? extends Channel> getSocketChannelType(); void setSocketChannelType(Class<? extends Channel> socketChannelType); Class<? extends EventLoopGroup> getGroupType(); void setGroupType(Class<? extends EventLoopGroup> groupType); ChannelPoolHandler getChannelPoolHandler(); void setChannelPoolHandler(ChannelPoolHandler channelPoolHandler); static ConnectionPoolManager initFromClientProperties(Properties properties); @SuppressWarnings("unchecked") static ConnectionPoolManager initFromClientProperties(NettyClientProperties properties, Initializer initializer); static ConnectionPoolManager initFromClientProperties(NettyClientProperties properties);  }### Answer:
@Test public void initFromClientProperties() throws Exception { List<String> channels = Arrays.asList( HttpClientCodec.class.getName(), HttpContentDecompressor.class.getName() ); Properties properties = new Properties(); properties.put(TransportConfigKey.GROUP_EVENT_TYPE.propName(), "io.netty.channel.nio.NioEventLoopGroup"); properties.put(TransportConfigKey.SOCKET_CHANNEL_TYPE.propName(), "io.netty.channel.socket.nio.NioSocketChannel"); properties.put(TransportConfigKey.WORKERS.propName(), 4); properties.put(TransportConfigKey.MAX_POOL_CONN.propName(), 30); properties.put(TransportConfigKey.CHANNEL_PIPELINES.propName(), String.join(",", channels)); ConnectionPoolManager manager = ConnectionPoolManager.initFromClientProperties(properties); assertEquals(properties.get(TransportConfigKey.SOCKET_CHANNEL_TYPE.propName()), manager.getSocketChannelType().getName()); assertEquals(properties.get(TransportConfigKey.GROUP_EVENT_TYPE.propName()), manager.getGroupType().getName()); manager.shutdown(); }