gobblin.metastore.DataSourceProvider.java Source code

Java tutorial

Introduction

Here is the source code for gobblin.metastore.DataSourceProvider.java

Source

/* (c) 2014 LinkedIn Corp. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use
 * this file except in compliance with the License. You may obtain a copy of the
 * License at  http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed
 * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 * CONDITIONS OF ANY KIND, either express or implied.
 */

package gobblin.metastore;

import javax.sql.DataSource;
import java.util.Properties;

import org.apache.commons.dbcp.BasicDataSource;

import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.name.Named;

import gobblin.configuration.ConfigurationKeys;

/**
 * A provider class for {@link javax.sql.DataSource}s.
 *
 * @author ynli
 */
public class DataSourceProvider implements Provider<DataSource> {

    private final BasicDataSource basicDataSource;

    @Inject
    public DataSourceProvider(@Named("dataSourceProperties") Properties properties) {
        this.basicDataSource = new BasicDataSource();
        basicDataSource
                .setDriverClassName(properties.getProperty(ConfigurationKeys.JOB_HISTORY_STORE_JDBC_DRIVER_KEY,
                        ConfigurationKeys.DEFAULT_JOB_HISTORY_STORE_JDBC_DRIVER));
        basicDataSource.setUrl(properties.getProperty(ConfigurationKeys.JOB_HISTORY_STORE_URL_KEY));
        if (properties.containsKey(ConfigurationKeys.JOB_HISTORY_STORE_USER_KEY)
                && properties.containsKey(ConfigurationKeys.JOB_HISTORY_STORE_PASSWORD_KEY)) {
            basicDataSource.setUsername(properties.getProperty(ConfigurationKeys.JOB_HISTORY_STORE_USER_KEY));
            basicDataSource.setPassword(properties.getProperty(ConfigurationKeys.JOB_HISTORY_STORE_PASSWORD_KEY));
        }
    }

    @Override
    public DataSource get() {
        return this.basicDataSource;
    }
}