code: public <T extends DataSource> T getDataSource() {
          T dataSource = jndiLookup(PropertyKey.DATA_SOURCE_JNDI_NAME);
          if (dataSource != null) {
              return dataSource;
          }
          dataSource = instantiateClass(PropertyKey.DATA_SOURCE_CLASS_NAME);
          if (dataSource == null) {
              throw new IllegalArgumentException("The " + PropertyKey.DATA_SOURCE_CLASS_NAME + " property is mandatory!");
          }
          return applyDataSourceProperties(dataSource);
      }
docs: Get associated {@link DataSource}. The {@link DataSource} can either be looked up in JNDI or instantiated
  from the configuration meta-data.
  
  @param <T> DataSource generic type
  @return {@link DataSource}