Skip to content

Commit 8a2d977

Browse files
committed
DRY-out config detection for a jndi connection + add some connection tests
1 parent 9dfe1c5 commit 8a2d977

File tree

16 files changed

+97
-25
lines changed

16 files changed

+97
-25
lines changed

lib/arjdbc/db2/connection_methods.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
def db2_connection(config)
44
config[:adapter_spec] ||= ::ArJdbc::DB2
55

6-
return jndi_connection(config) if config[:jndi]
6+
return jndi_connection(config) if jndi_config?(config)
77

88
config[:url] ||= begin
99
if config[:host] # Type 4 URL: jdbc:db2://server:port/database

lib/arjdbc/derby/connection_methods.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
def derby_connection(config)
33
config[:adapter_spec] ||= ::ArJdbc::Derby
44

5-
return jndi_connection(config) if config[:jndi]
5+
return jndi_connection(config) if jndi_config?(config)
66

77
begin
88
require 'jdbc/derby'

lib/arjdbc/firebird/connection_methods.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
def firebird_connection(config)
33
config[:adapter_spec] ||= ::ArJdbc::Firebird
44

5-
return jndi_connection(config) if config[:jndi]
5+
return jndi_connection(config) if jndi_config?(config)
66

77
begin
88
require 'jdbc/firebird'

lib/arjdbc/h2/connection_methods.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ def h2_connection(config)
33
config[:adapter_spec] ||= ::ArJdbc::H2
44
config[:adapter_class] = ActiveRecord::ConnectionAdapters::H2Adapter unless config.key?(:adapter_class)
55

6-
return jndi_connection(config) if config[:jndi]
6+
return jndi_connection(config) if jndi_config?(config)
77

88
begin
99
require 'jdbc/h2'

lib/arjdbc/hsqldb/connection_methods.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ def hsqldb_connection(config)
33
config[:adapter_spec] ||= ::ArJdbc::HSQLDB
44
config[:adapter_class] = ActiveRecord::ConnectionAdapters::HsqldbAdapter unless config.key?(:adapter_class)
55

6-
return jndi_connection(config) if config[:jndi]
6+
return jndi_connection(config) if jndi_config?(config)
77

88
begin
99
require 'jdbc/hsqldb'

lib/arjdbc/jdbc/connection.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ def native_database_types
3636
# @deprecated no longer used - only kept for compatibility
3737
def set_native_database_types; end
3838

39+
def self.jndi_config?(config)
40+
config[:jndi] || config[:data_source]
41+
end
42+
3943
def jndi?; @jndi; end
4044
alias_method :jndi_connection?, :jndi?
4145

@@ -46,7 +50,7 @@ def jndi?; @jndi; end
4650
# @note this has nothing to do with the configure_connection implemented
4751
# on some of the concrete adapters (e.g. {#ArJdbc::Postgres})
4852
def setup_connection_factory
49-
if config[:jndi] || config[:data_source]
53+
if self.class.jndi_config?(config)
5054
begin
5155
setup_jndi_factory
5256
rescue => e

lib/arjdbc/jdbc/connection_methods.rb

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,26 @@ module ArJdbc
55
ConnectionMethods = (class << ActiveRecord::Base; self; end)
66
end
77
ConnectionMethods.module_eval do
8-
8+
99
def jdbc_connection(config)
1010
adapter_class = config[:adapter_class]
1111
adapter_class ||= ::ActiveRecord::ConnectionAdapters::JdbcAdapter
1212
adapter_class.new(nil, logger, config)
1313
end
14-
alias jndi_connection jdbc_connection
14+
15+
def jndi_connection(config); jdbc_connection(config) end
1516

1617
def embedded_driver(config)
1718
config[:username] ||= "sa"
1819
config[:password] ||= ""
1920
jdbc_connection(config)
2021
end
21-
22+
23+
private
24+
25+
def jndi_config?(config)
26+
::ActiveRecord::ConnectionAdapters::JdbcConnection.jndi_config?(config)
27+
end
28+
2229
end
2330
end

lib/arjdbc/mssql/connection_methods.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ def mssql_connection(config)
1010
if config[:driver] =~ /SQLServerDriver$/ || config[:url] =~ /^jdbc:sqlserver:/
1111
return sqlserver_connection(config)
1212
end
13-
13+
1414
config[:adapter_spec] ||= ::ArJdbc::MSSQL
1515
config[:adapter_class] = ActiveRecord::ConnectionAdapters::MSSQLAdapter unless config.key?(:adapter_class)
1616

17-
return jndi_connection(config) if config[:jndi]
17+
return jndi_connection(config) if jndi_config?(config)
1818

1919
begin
2020
require 'jdbc/jtds'
@@ -55,7 +55,7 @@ def sqlserver_connection(config)
5555
config[:adapter_spec] ||= ::ArJdbc::MSSQL
5656
config[:adapter_class] = ActiveRecord::ConnectionAdapters::MSSQLAdapter unless config.key?(:adapter_class)
5757

58-
return jndi_connection(config) if config[:jndi]
58+
return jndi_connection(config) if jndi_config?(config)
5959

6060
config[:host] ||= 'localhost'
6161
config[:driver] ||= 'com.microsoft.sqlserver.jdbc.SQLServerDriver'

lib/arjdbc/mysql/connection_methods.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ def mysql_connection(config)
33
config[:adapter_spec] ||= ::ArJdbc::MySQL
44
config[:adapter_class] = ActiveRecord::ConnectionAdapters::MysqlAdapter unless config.key?(:adapter_class)
55

6-
return jndi_connection(config) if config[:jndi]
6+
return jndi_connection(config) if jndi_config?(config)
77

88
begin
99
require 'jdbc/mysql'

lib/arjdbc/oracle/connection_methods.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ def oracle_connection(config)
66
config[:adapter_spec] ||= ::ArJdbc::Oracle
77
config[:adapter_class] = ActiveRecord::ConnectionAdapters::OracleAdapter unless config.key?(:adapter_class)
88

9-
return jndi_connection(config) if config[:jndi]
10-
9+
return jndi_connection(config) if jndi_config?(config)
10+
1111
config[:port] ||= 1521
1212
config[:url] ||= "jdbc:oracle:thin:@#{config[:host]}:#{config[:port]}:#{config[:database]}"
1313
config[:driver] ||= "oracle.jdbc.driver.OracleDriver"

0 commit comments

Comments
 (0)