my ($class, $dbconn_part, $driver, $user, $pass, $host, $port, $dbname, $conn_params) = @_;
my $type = $conn_params->{'type'};
my $disconnect_when_inactive = $conn_params->{'disconnect_when_inactive'};
my $no_sql_schema_version_check = $conn_params->{'no_sql_schema_version_check'};
my $connectionKey = $driver.'://'.($user
my $dba = $_URLFactory_global_instance->{$connectionKey};
unless($dba) {
my $module = {
'hive' => 'Bio::EnsEMBL::Hive::DBSQL::DBAdaptor',
'compara' => 'Bio::EnsEMBL::Compara::DBSQL::DBAdaptor',
'core' => 'Bio::EnsEMBL::DBSQL::DBAdaptor',
'pipeline' => 'Bio::EnsEMBL::Pipeline::DBSQL::DBAdaptor',
}->{$type};
eval "require $module";
$_URLFactory_global_instance->{$connectionKey} = $dba =
$type eq 'hive'
? $module->new(
-url => $dbconn_part,
-disconnect_when_inactive => $disconnect_when_inactive,
-no_sql_schema_version_check=> $no_sql_schema_version_check,
) : $module->new(
-driver => $driver,
-host => $host,
-port => $port,
-user => $user,
-pass => $pass,
-dbname => $dbname,
-species => $dbname,
-disconnect_when_inactive => $disconnect_when_inactive,
);
}
return $dba;
}