Search in sources :

Example 1 with DbConnMySQL

use of com.axway.ats.core.dbaccess.mysql.DbConnMySQL in project ats-framework by Axway.

the class DatabaseProviderFactory method getDatabaseProvider.

/**
	 * Creates a database provider suitable for the given input arguments
	 * 
	 * @param dbType
	 * @param dbHost
	 * @param dbName
	 * @param dbUser
	 * @param dbPass
	 * @param dbPort
	 * @param customProperties
	 * @return
	 */
public static synchronized DbProvider getDatabaseProvider(String dbType, String dbHost, String dbName, String dbUser, String dbPass, int dbPort, Map<String, Object> customProperties) {
    DbProvider dbProvider;
    if (dbType == null) {
        throw new IllegalArgumentException("Database type is not provided");
    }
    if (dbName == null) {
        if ("MSSQL".equals(dbType)) {
            log.warn("Database name is empty! The connection will be made to the admin database!");
        } else {
            throw new IllegalArgumentException("Database name is not provided");
        }
    }
    // eventual custom property value
    if (dbPort > 0) {
        if (customProperties == null) {
            customProperties = new HashMap<String, Object>();
        }
        customProperties.put(DbKeys.PORT_KEY, dbPort);
    }
    // load a custom data provider
    if (dbProviders.containsKey(dbType)) {
        String[] classNames = dbProviders.get(dbType);
        DbConnection dbConnection = loadDbConnection(classNames[0], dbType, dbHost, dbName, dbUser, dbPass, dbPort, customProperties);
        return loadCustomDbProvider(classNames[1], dbConnection);
    }
    // load a common ATS supported data provider
    switch(dbType) {
        case DbConnSQLServer.DATABASE_TYPE:
            dbProvider = new MssqlDbProvider((DbConnSQLServer) createDbConnection(dbType, dbHost, dbName, dbUser, dbPass, customProperties));
            break;
        case DbConnMySQL.DATABASE_TYPE:
            dbProvider = new MysqlDbProvider((DbConnMySQL) createDbConnection(dbType, dbHost, dbName, dbUser, dbPass, customProperties));
            break;
        case DbConnOracle.DATABASE_TYPE:
            dbProvider = new OracleDbProvider((DbConnOracle) createDbConnection(dbType, dbHost, dbName, dbUser, dbPass, customProperties));
            break;
        case DbConnCassandra.DATABASE_TYPE:
            dbProvider = new CassandraDbProvider((DbConnCassandra) createDbConnection(dbType, dbHost, dbName, dbUser, dbPass, customProperties));
            break;
        default:
            {
                // should never happen
                throw new IllegalArgumentException("Database type " + dbType + " not supported");
            }
    }
    return dbProvider;
}
Also used : OracleDbProvider(com.axway.ats.core.dbaccess.oracle.OracleDbProvider) MssqlDbProvider(com.axway.ats.core.dbaccess.mssql.MssqlDbProvider) DbConnSQLServer(com.axway.ats.core.dbaccess.mssql.DbConnSQLServer) MysqlDbProvider(com.axway.ats.core.dbaccess.mysql.MysqlDbProvider) DbConnMySQL(com.axway.ats.core.dbaccess.mysql.DbConnMySQL) DbConnOracle(com.axway.ats.core.dbaccess.oracle.DbConnOracle) CassandraDbProvider(com.axway.ats.core.dbaccess.cassandra.CassandraDbProvider) OracleDbProvider(com.axway.ats.core.dbaccess.oracle.OracleDbProvider) MssqlDbProvider(com.axway.ats.core.dbaccess.mssql.MssqlDbProvider) MysqlDbProvider(com.axway.ats.core.dbaccess.mysql.MysqlDbProvider) DbConnCassandra(com.axway.ats.core.dbaccess.cassandra.DbConnCassandra) CassandraDbProvider(com.axway.ats.core.dbaccess.cassandra.CassandraDbProvider)

Example 2 with DbConnMySQL

use of com.axway.ats.core.dbaccess.mysql.DbConnMySQL in project ats-framework by Axway.

the class PackageLoader method loadPackageFromDb.

private static InputStream loadPackageFromDb(int packageId, String messagesHost, String messagesDB, String messagestable, String messagesUser, String messagesPassword) throws PackageException {
    DbConnMySQL dbConnection = new DbConnMySQL(messagesHost, messagesDB, messagesUser, messagesPassword);
    MysqlDbProvider dbProvider = new MysqlDbProvider(dbConnection);
    try {
        InputStream packageContent = dbProvider.selectValue(messagestable, "message_id", Integer.toString(packageId), "data");
        log.info("Successfully extracted package with id '" + packageId + "' from '" + messagestable + "' DB");
        return packageContent;
    } catch (DbRecordsException dbre) {
        throw new PackageException("Package with id '" + packageId + "' does not exist in 'messages' DB");
    } catch (DbException dbe) {
        throw new PackageException("Could not get package with id '" + packageId + "' from the 'messages' DB");
    }
}
Also used : MysqlDbProvider(com.axway.ats.core.dbaccess.mysql.MysqlDbProvider) FileInputStream(java.io.FileInputStream) InputStream(java.io.InputStream) DbConnMySQL(com.axway.ats.core.dbaccess.mysql.DbConnMySQL) PackageException(com.axway.ats.action.objects.model.PackageException) DbRecordsException(com.axway.ats.core.dbaccess.exceptions.DbRecordsException) DbException(com.axway.ats.core.dbaccess.exceptions.DbException)

Example 3 with DbConnMySQL

use of com.axway.ats.core.dbaccess.mysql.DbConnMySQL in project ats-framework by Axway.

the class Test_DatabaseProviderFactory_createDbConnection method createMysqlNoCustom.

@Test
public void createMysqlNoCustom() {
    DbConnMySQL dbConnection = (DbConnMySQL) DatabaseProviderFactory.createDbConnection(DbConnMySQL.DATABASE_TYPE, "host", "db", "user", "pass");
    assertEquals(DbConnMySQL.DATABASE_TYPE, dbConnection.getDbType());
    assertEquals("host", dbConnection.getHost());
    assertEquals("db", dbConnection.getDb());
    assertEquals("user", dbConnection.getUser());
    assertEquals("pass", dbConnection.getPassword());
    assertEquals("jdbc:mysql://host:3306/db", dbConnection.getURL());
}
Also used : DbConnMySQL(com.axway.ats.core.dbaccess.mysql.DbConnMySQL) BaseTest(com.axway.ats.core.BaseTest) Test(org.junit.Test)

Example 4 with DbConnMySQL

use of com.axway.ats.core.dbaccess.mysql.DbConnMySQL in project ats-framework by Axway.

the class Test_DatabaseProviderFactory_createDbConnection method createMysqlWithCustomProperties.

@Test
public void createMysqlWithCustomProperties() {
    Map<String, Object> customProperties = new HashMap<String, Object>();
    customProperties.put(DbKeys.PORT_KEY, 123);
    DbConnMySQL dbConnection = (DbConnMySQL) DatabaseProviderFactory.createDbConnection(DbConnMySQL.DATABASE_TYPE, "host", "db", "user", "pass", customProperties);
    assertEquals(DbConnMySQL.DATABASE_TYPE, dbConnection.getDbType());
    assertEquals("host", dbConnection.getHost());
    assertEquals("db", dbConnection.getDb());
    assertEquals("user", dbConnection.getUser());
    assertEquals("pass", dbConnection.getPassword());
    assertEquals("jdbc:mysql://host:123/db", dbConnection.getURL());
}
Also used : HashMap(java.util.HashMap) DbConnMySQL(com.axway.ats.core.dbaccess.mysql.DbConnMySQL) BaseTest(com.axway.ats.core.BaseTest) Test(org.junit.Test)

Example 5 with DbConnMySQL

use of com.axway.ats.core.dbaccess.mysql.DbConnMySQL in project ats-framework by Axway.

the class Test_EnvrionmentHandlerFactory method createDbRestoreHandlerPositive.

@Test
public void createDbRestoreHandlerPositive() {
    EnvironmentHandlerFactory factory = EnvironmentHandlerFactory.getInstance();
    assertEquals(MysqlEnvironmentHandler.class, factory.createDbRestoreHandler(new DbConnMySQL("host", "db", "user", "pass")).getClass());
    assertEquals(OracleEnvironmentHandler.class, factory.createDbRestoreHandler(new DbConnOracle("host", "db", "user", "pass")).getClass());
}
Also used : EnvironmentHandlerFactory(com.axway.ats.environment.database.EnvironmentHandlerFactory) DbConnMySQL(com.axway.ats.core.dbaccess.mysql.DbConnMySQL) DbConnOracle(com.axway.ats.core.dbaccess.oracle.DbConnOracle) BaseTest(com.axway.ats.environment.BaseTest) Test(org.junit.Test)

Aggregations

DbConnMySQL (com.axway.ats.core.dbaccess.mysql.DbConnMySQL)7 Test (org.junit.Test)4 DbConnOracle (com.axway.ats.core.dbaccess.oracle.DbConnOracle)3 BaseTest (com.axway.ats.core.BaseTest)2 MysqlDbProvider (com.axway.ats.core.dbaccess.mysql.MysqlDbProvider)2 BaseTest (com.axway.ats.environment.BaseTest)2 EnvironmentHandlerFactory (com.axway.ats.environment.database.EnvironmentHandlerFactory)2 HashMap (java.util.HashMap)2 PackageException (com.axway.ats.action.objects.model.PackageException)1 Component (com.axway.ats.agent.core.Component)1 ComponentEnvironment (com.axway.ats.agent.core.ComponentEnvironment)1 CassandraDbProvider (com.axway.ats.core.dbaccess.cassandra.CassandraDbProvider)1 DbConnCassandra (com.axway.ats.core.dbaccess.cassandra.DbConnCassandra)1 DbException (com.axway.ats.core.dbaccess.exceptions.DbException)1 DbRecordsException (com.axway.ats.core.dbaccess.exceptions.DbRecordsException)1 DbConnSQLServer (com.axway.ats.core.dbaccess.mssql.DbConnSQLServer)1 MssqlDbProvider (com.axway.ats.core.dbaccess.mssql.MssqlDbProvider)1 OracleDbProvider (com.axway.ats.core.dbaccess.oracle.OracleDbProvider)1 EnvironmentUnit (com.axway.ats.environment.EnvironmentUnit)1 DatabaseEnvironmentUnit (com.axway.ats.environment.database.DatabaseEnvironmentUnit)1