public void setup() {
    if (databasePool != null) {
      DatabaseConnection database = null;
      IDataSet dataSet = null;
      try {
        database = databasePool.borrowInstance(this);
        dataSet = database.getDataSet(dbQuery, true);

        int keyIdx = dataSet.getFieldIndex(keyColumn);
        int valueIdx = dataSet.getFieldIndex(valueColumn);

        while (dataSet.next()) {
          String name = dataSet.getFieldValue(keyIdx).asString();
          String value = dataSet.getFieldValue(valueIdx).asString();
          getLocalPropertyMap().put(name, value);
        }
      } catch (Exception e) {
        throw new RuntimeException(e);
      } finally {
        if (dataSet != null) {
          dataSet.close();
        }

        if (database != null) {
          databasePool.returnInstance(database, this);
        }
      }
    }
  }