@Override public void connectionClosed(Connection connection) { if (connection != null) { connection.close(); } }
@Override public void close() { nettyConnection.close(); }
@Override public boolean closeConnection(Connection connection) { boolean removed = borrowedConnections.remove(connection); if (removed) { busyConnections.decrementAndGet(); closedConnections.incrementAndGet(); connection.close(); } return true; }
@Override public <T> Observable<T> withConnection(Function<Connection, Observable<T>> task) { return createConnection() .flatMap(connection -> execute(task, connection) .doOnCompleted(connection::close) .doOnError(throwable -> connection.close())); }