@Override
    public void initialize(Configuration conf, InputSplit split) throws IOException, InterruptedException {
        this.setConf(conf);
        this.setTrimStrings(conf.getBoolean(TRIM_STRINGS, trimStrings));
        this.setResultSetType(conf.getInt(JDBC_RESULTSET_TYPE, resultSetType));

        String jdbcUrl = conf.get(JDBC_URL);
        String driverClassName = conf.get(JDBC_DRIVER_CLASS_NAME);
        // url and driver must be both unset or both present
        if (jdbcUrl == null ^ driverClassName == null) {
            throw new IllegalArgumentException(
                "Both jdbc url and driver class name must be provided in order to configure JDBCRecordReader's datasource");
        }
        // Both set, initialiaze the datasource
        else if (jdbcUrl != null) {
            // FIXME : find a way to read wildcard properties from conf in order to fill the third argument bellow
            this.dataSource = new DriverDataSource(jdbcUrl, driverClassName, new Properties(), conf.get(JDBC_USERNAME),
                conf.get(JDBC_PASSWORD));
        }
        this.initializeJdbc();
    }
@ Override public void initialize ( Configuration conf , InputSplit split ) throws IOException , InterruptedException { this . setConf ( conf ) ; this . setTrimStrings ( conf . getBoolean ( TRIM_STRINGS , trimStrings ) ) ; this . setResultSetType ( conf . getInt ( JDBC_RESULTSET_TYPE , resultSetType ) ) ; String jdbcUrl = conf . get ( JDBC_URL ) ; String driverClassName = conf . get ( JDBC_DRIVER_CLASS_NAME ) ; if ( jdbcUrl == null ^ driverClassName == null ) { throw new IllegalArgumentException ( "Both jdbc url and driver class name must be provided in order to configure JDBCRecordReader's datasource" ) ; } else if ( jdbcUrl != null ) { this . dataSource = new DriverDataSource ( jdbcUrl , driverClassName , new Properties ( ) , conf . get ( JDBC_USERNAME ) , conf . get ( JDBC_PASSWORD ) ) ; } this . initializeJdbc ( ) ; }
Initialize all required jdbc elements and make the reader ready for iteration.

Possible configuration keys :
<ol>
<li>JDBCRecordReader.TRIM_STRINGS : Whether or not read strings should be trimmed before being returned. False by default</li>
<li>JDBCRecordReader.JDBC_URL : Jdbc url to use for datastource configuration (see JDBCRecordReaderTest for examples)</li>
<li>JDBCRecordReader.JDBC_DRIVER_CLASS_NAME : Driver class to use for datasource configuration</li>
<li>JDBCRecordReader.JDBC_USERNAME && JDBC_PASSWORD : Username and password to use for datasource configuration</li>
<li>JDBCRecordReader.JDBC_RESULTSET_TYPE : ResultSet type to use (int value defined in jdbc doc)</li>
</ol>

Url and driver class name are not mandatory. If one of them is specified, the other must be specified as well. If
they are set and there already is a DataSource set in the reader, it will be discarded and replaced with the
newly created one.

@param conf a configuration for initialization
@param split not handled yet, will be discarded