Search in sources :

Example 1 with DataSourceConfiguration

use of org.opennms.netmgt.config.opennmsDataSources.DataSourceConfiguration in project opennms by OpenNMS.

the class HikariCPConnectionFactoryIT method makeFactory.

private HikariCPConnectionFactory makeFactory(String database) throws PropertyVetoException, SQLException, IOException {
    final DataSourceConfiguration config = new DataSourceConfiguration();
    final JdbcDataSource opennms = new JdbcDataSource();
    opennms.setName("opennms");
    opennms.setClassName("org.postgresql.Driver");
    opennms.setUserName("opennms");
    opennms.setPassword("opennms");
    opennms.setUrl("jdbc:postgresql://localhost:5432/template1");
    config.addJdbcDataSource(opennms);
    final JdbcDataSource opennms2 = new JdbcDataSource();
    opennms2.setName("opennms2");
    opennms2.setClassName("org.postgresql.Driver");
    opennms2.setUserName("opennms");
    opennms2.setPassword("opennms");
    opennms2.setUrl("jdbc:postgresql://localhost:5432/template1");
    config.addJdbcDataSource(opennms2);
    final String mockDbUrl = System.getProperty("mock.db.url");
    if (mockDbUrl != null && !"".equals(mockDbUrl.trim())) {
        opennms.setUrl(mockDbUrl + "template1");
        opennms2.setUrl(mockDbUrl + "template1");
    }
    final String mockDbAdminUser = System.getProperty("mock.db.adminUser");
    if (mockDbAdminUser != null && !"".equals(mockDbAdminUser.trim())) {
        opennms.setUserName(mockDbAdminUser);
        opennms2.setUserName(mockDbAdminUser);
    }
    final String mockDbAdminPassword = System.getProperty("mock.db.adminPassword");
    if (mockDbAdminPassword != null) {
        opennms.setPassword(mockDbAdminPassword);
        opennms2.setPassword(mockDbAdminPassword);
    }
    final StringWriter sw = new StringWriter();
    JaxbUtils.marshal(config, sw);
    final String configString = sw.toString();
    InputStream stream = new ByteArrayInputStream(configString.getBytes());
    final DataSourceConfigurationFactory factory = new DataSourceConfigurationFactory(stream);
    try {
        return new HikariCPConnectionFactory(factory.getJdbcDataSource(database));
    } finally {
        IOUtils.closeQuietly(stream);
    }
}
Also used : StringWriter(java.io.StringWriter) ByteArrayInputStream(java.io.ByteArrayInputStream) ByteArrayInputStream(java.io.ByteArrayInputStream) InputStream(java.io.InputStream) JdbcDataSource(org.opennms.netmgt.config.opennmsDataSources.JdbcDataSource) DataSourceConfiguration(org.opennms.netmgt.config.opennmsDataSources.DataSourceConfiguration)

Example 2 with DataSourceConfiguration

use of org.opennms.netmgt.config.opennmsDataSources.DataSourceConfiguration in project opennms by OpenNMS.

the class C3P0ConnectionFactoryIT method makeFactory.

private C3P0ConnectionFactory makeFactory(String database) throws PropertyVetoException, SQLException, IOException {
    final DataSourceConfiguration config = new DataSourceConfiguration();
    final JdbcDataSource opennms = new JdbcDataSource();
    opennms.setName("opennms");
    opennms.setClassName("org.postgresql.Driver");
    opennms.setUserName("opennms");
    opennms.setPassword("opennms");
    opennms.setUrl("jdbc:postgresql://localhost:5432/template1");
    config.addJdbcDataSource(opennms);
    final JdbcDataSource opennms2 = new JdbcDataSource();
    opennms2.setName("opennms2");
    opennms2.setClassName("org.postgresql.Driver");
    opennms2.setUserName("opennms");
    opennms2.setPassword("opennms");
    opennms2.setUrl("jdbc:postgresql://localhost:5432/template1");
    config.addJdbcDataSource(opennms2);
    final String mockDbUrl = System.getProperty("mock.db.url");
    if (mockDbUrl != null && !"".equals(mockDbUrl.trim())) {
        opennms.setUrl(mockDbUrl + "template1");
        opennms2.setUrl(mockDbUrl + "template1");
    }
    final String mockDbAdminUser = System.getProperty("mock.db.adminUser");
    if (mockDbAdminUser != null && !"".equals(mockDbAdminUser.trim())) {
        opennms.setUserName(mockDbAdminUser);
        opennms2.setUserName(mockDbAdminUser);
    }
    final String mockDbAdminPassword = System.getProperty("mock.db.adminPassword");
    if (mockDbAdminPassword != null) {
        opennms.setPassword(mockDbAdminPassword);
        opennms2.setPassword(mockDbAdminPassword);
    }
    final StringWriter sw = new StringWriter();
    JaxbUtils.marshal(config, sw);
    final String configString = sw.toString();
    InputStream stream = new ByteArrayInputStream(configString.getBytes());
    final DataSourceConfigurationFactory factory = new DataSourceConfigurationFactory(stream);
    try {
        return new C3P0ConnectionFactory(factory.getJdbcDataSource(database));
    } finally {
        IOUtils.closeQuietly(stream);
    }
}
Also used : StringWriter(java.io.StringWriter) ByteArrayInputStream(java.io.ByteArrayInputStream) ByteArrayInputStream(java.io.ByteArrayInputStream) InputStream(java.io.InputStream) JdbcDataSource(org.opennms.netmgt.config.opennmsDataSources.JdbcDataSource) DataSourceConfiguration(org.opennms.netmgt.config.opennmsDataSources.DataSourceConfiguration)

Example 3 with DataSourceConfiguration

use of org.opennms.netmgt.config.opennmsDataSources.DataSourceConfiguration in project opennms by OpenNMS.

the class DataSourceConfigurationTest method data.

@Parameters
public static Collection<Object[]> data() throws Exception {
    DataSourceConfiguration config = new DataSourceConfiguration();
    ConnectionPool connectionPool = new ConnectionPool();
    connectionPool.setFactory("org.opennms.core.db.HikariCPConnectionFactory");
    connectionPool.setIdleTimeout(600);
    connectionPool.setLoginTimeout(3);
    connectionPool.setMinPool(50);
    connectionPool.setMaxPool(50);
    connectionPool.setMaxSize(50);
    config.setConnectionPool(connectionPool);
    JdbcDataSource opennmsDs = new JdbcDataSource();
    opennmsDs.setName("opennms");
    opennmsDs.setClassName("org.postgresql.Driver");
    opennmsDs.setUrl("jdbc:postgresql://localhost:5432/template1");
    opennmsDs.setUserName("opennms");
    opennmsDs.setPassword("opennms");
    config.addJdbcDataSource(opennmsDs);
    JdbcDataSource opennmsDeuceDs = new JdbcDataSource();
    opennmsDeuceDs.setName("opennms2");
    opennmsDeuceDs.setClassName("org.postgresql.Driver");
    opennmsDeuceDs.setUrl("jdbc:postgresql://localhost:5432/template1");
    opennmsDeuceDs.addParam(new Param("user", "opennms"));
    opennmsDeuceDs.addParam(new Param("password", "opennms"));
    config.addJdbcDataSource(opennmsDeuceDs);
    return Arrays.asList(new Object[][] { { config, new File("src/test/resources/org/opennms/core/db/opennms-datasources.xml") } });
}
Also used : ConnectionPool(org.opennms.netmgt.config.opennmsDataSources.ConnectionPool) JdbcDataSource(org.opennms.netmgt.config.opennmsDataSources.JdbcDataSource) Param(org.opennms.netmgt.config.opennmsDataSources.Param) DataSourceConfiguration(org.opennms.netmgt.config.opennmsDataSources.DataSourceConfiguration) File(java.io.File) Parameters(org.junit.runners.Parameterized.Parameters)

Example 4 with DataSourceConfiguration

use of org.opennms.netmgt.config.opennmsDataSources.DataSourceConfiguration in project opennms by OpenNMS.

the class OnmsProperties method initialize.

/**
     * Initialize.
     */
public static void initialize() {
    try {
        final Properties mainProperties = new Properties();
        loadProperties(mainProperties, "opennms.properties");
        registerProperties(mainProperties);
        final File cfgFile = ConfigFileConstants.getFile(ConfigFileConstants.OPENNMS_DATASOURCE_CONFIG_FILE_NAME);
        final DataSourceConfiguration dsc = JaxbUtils.unmarshal(DataSourceConfiguration.class, cfgFile);
        boolean found = false;
        for (JdbcDataSource jds : dsc.getJdbcDataSourceCollection()) {
            if (jds.getName().equals("opennms")) {
                SimpleDataSource ds = new SimpleDataSource(jds);
                DataSourceFactory.setInstance(ds);
                found = true;
            }
        }
        if (!found) {
            throw NewtsConverterError.create("Can't find OpenNMS database configuration");
        }
    } catch (Exception e) {
        throw NewtsConverterError.create(e, "Can't initialize OpenNMS database connection factory: {}", e.getMessage());
    }
}
Also used : JdbcDataSource(org.opennms.netmgt.config.opennmsDataSources.JdbcDataSource) Properties(java.util.Properties) DataSourceConfiguration(org.opennms.netmgt.config.opennmsDataSources.DataSourceConfiguration) File(java.io.File)

Example 5 with DataSourceConfiguration

use of org.opennms.netmgt.config.opennmsDataSources.DataSourceConfiguration in project opennms by OpenNMS.

the class ReportCompiler method initializeSingleInstanceDatabase.

/**
     * Initializes a single instance DB connection factory.
     * <p>From <code>org.opennms.netmgt.poller.MonitorTester</code></p>
     */
private static void initializeSingleInstanceDatabase() {
    try {
        final File cfgFile = ConfigFileConstants.getFile(ConfigFileConstants.OPENNMS_DATASOURCE_CONFIG_FILE_NAME);
        final DataSourceConfiguration dsc = JaxbUtils.unmarshal(DataSourceConfiguration.class, cfgFile);
        boolean found = false;
        for (JdbcDataSource jds : dsc.getJdbcDataSourceCollection()) {
            if (jds.getName().equals("opennms")) {
                System.out.printf("Initializing datatabase %s\n", jds.getUrl());
                DataSourceFactory.setInstance(new SimpleDataSource(jds));
                found = true;
            }
        }
        if (!found) {
            System.err.printf("Error: Can't find OpenNMS database configuration.\n");
            System.exit(1);
        }
    } catch (Exception e) {
        System.err.printf("Error: Can't initialize OpenNMS database connection factory. %s\n", e.getMessage());
        System.exit(1);
    }
}
Also used : JdbcDataSource(org.opennms.netmgt.config.opennmsDataSources.JdbcDataSource) DataSourceConfiguration(org.opennms.netmgt.config.opennmsDataSources.DataSourceConfiguration) File(java.io.File) SQLFeatureNotSupportedException(java.sql.SQLFeatureNotSupportedException) JRException(net.sf.jasperreports.engine.JRException) SQLException(java.sql.SQLException)

Aggregations

DataSourceConfiguration (org.opennms.netmgt.config.opennmsDataSources.DataSourceConfiguration)7 JdbcDataSource (org.opennms.netmgt.config.opennmsDataSources.JdbcDataSource)7 File (java.io.File)5 InputStream (java.io.InputStream)3 ByteArrayInputStream (java.io.ByteArrayInputStream)2 StringWriter (java.io.StringWriter)2 SQLException (java.sql.SQLException)2 FileInputStream (java.io.FileInputStream)1 IOException (java.io.IOException)1 InputStreamReader (java.io.InputStreamReader)1 Reader (java.io.Reader)1 URL (java.net.URL)1 SQLFeatureNotSupportedException (java.sql.SQLFeatureNotSupportedException)1 Properties (java.util.Properties)1 JRException (net.sf.jasperreports.engine.JRException)1 Parameters (org.junit.runners.Parameterized.Parameters)1 SimpleDataSource (org.opennms.core.db.install.SimpleDataSource)1 ConnectionPool (org.opennms.netmgt.config.opennmsDataSources.ConnectionPool)1 Param (org.opennms.netmgt.config.opennmsDataSources.Param)1