Skip to content

Commit

Permalink
JDBC driver names should be on one (re-usable) place
Browse files Browse the repository at this point in the history
  • Loading branch information
kares committed Dec 14, 2012
1 parent f15684f commit 3d61ee3
Show file tree
Hide file tree
Showing 14 changed files with 45 additions and 19 deletions.
4 changes: 4 additions & 0 deletions jdbc-derby/lib/jdbc/derby.rb
Expand Up @@ -9,6 +9,10 @@ def self.driver_jar
def self.load_driver(method = :load)
send method, driver_jar
end

def self.driver_name
'org.apache.derby.jdbc.EmbeddedDriver'
end
end
end

Expand Down
4 changes: 4 additions & 0 deletions jdbc-h2/lib/jdbc/h2.rb
Expand Up @@ -9,6 +9,10 @@ def self.driver_jar
def self.load_driver(method = :load)
send method, driver_jar
end

def self.driver_name
'org.h2.Driver'
end
end
end

Expand Down
4 changes: 4 additions & 0 deletions jdbc-hsqldb/lib/jdbc/hsqldb.rb
Expand Up @@ -9,6 +9,10 @@ def self.driver_jar
def self.load_driver(method = :load)
send method, driver_jar
end

def self.driver_name
'org.hsqldb.jdbcDriver'
end
end
end

Expand Down
4 changes: 4 additions & 0 deletions jdbc-jtds/lib/jdbc/jtds.rb
Expand Up @@ -9,6 +9,10 @@ def self.driver_jar
def self.load_driver(method = :load)
send method, driver_jar
end

def self.driver_name
'net.sourceforge.jtds.jdbc.Driver'
end
end
end

Expand Down
4 changes: 4 additions & 0 deletions jdbc-mysql/lib/jdbc/mysql.rb
Expand Up @@ -9,6 +9,10 @@ def self.driver_jar
def self.load_driver(method = :load)
send method, driver_jar
end

def self.driver_name
'com.mysql.jdbc.Driver'
end
end
end

Expand Down
4 changes: 4 additions & 0 deletions jdbc-postgres/lib/jdbc/postgres.rb
Expand Up @@ -12,6 +12,10 @@ def self.load_driver(method = :load)
send method, driver_jar
end

def self.driver_name
'org.postgresql.Driver'
end

private

# JDBC version 4 if Java >=1.6, else 3
Expand Down
3 changes: 3 additions & 0 deletions jdbc-sqlite3/lib/jdbc/sqlite3.rb
Expand Up @@ -10,6 +10,9 @@ def self.load_driver(method = :load)
send method, driver_jar
end

def self.driver_name
'org.sqlite.JDBC'
end
end
end

Expand Down
2 changes: 1 addition & 1 deletion lib/arjdbc/derby/connection_methods.rb
Expand Up @@ -5,7 +5,7 @@ def derby_connection(config)
require 'active_record/connection_adapters/jdbcderby_adapter'

config[:url] ||= "jdbc:derby:#{config[:database]};create=true"
config[:driver] ||= "org.apache.derby.jdbc.EmbeddedDriver"
config[:driver] ||= ::Jdbc::Derby.driver_name # org.apache.derby.jdbc.EmbeddedDriver
config[:adapter_spec] = ::ArJdbc::Derby
conn = embedded_driver(config)
md = conn.jdbc_connection.meta_data
Expand Down
2 changes: 1 addition & 1 deletion lib/arjdbc/h2/connection_methods.rb
Expand Up @@ -5,7 +5,7 @@ def h2_connection(config)
require 'active_record/connection_adapters/jdbch2_adapter'

config[:url] ||= "jdbc:h2:#{config[:database]}"
config[:driver] ||= "org.h2.Driver"
config[:driver] ||= ::Jdbc::H2.driver_name # org.h2.Driver
config[:adapter_spec] = ::ArJdbc::H2
embedded_driver(config)
end
Expand Down
2 changes: 1 addition & 1 deletion lib/arjdbc/hsqldb/connection_methods.rb
Expand Up @@ -5,7 +5,7 @@ def hsqldb_connection(config)
require 'active_record/connection_adapters/jdbchsqldb_adapter'

config[:url] ||= "jdbc:hsqldb:#{config[:database]}"
config[:driver] ||= "org.hsqldb.jdbcDriver"
config[:driver] ||= ::Jdbc::HSQLDB.driver_name # org.hsqldb.jdbcDriver
config[:adapter_spec] = ::ArJdbc::HSQLDB
embedded_driver(config)
end
Expand Down
25 changes: 12 additions & 13 deletions lib/arjdbc/mssql/connection_methods.rb
Expand Up @@ -5,21 +5,20 @@ def mssql_connection(config)

config[:host] ||= "localhost"
config[:port] ||= 1433
config[:driver] ||= "net.sourceforge.jtds.jdbc.Driver"
config[:driver] ||= ::Jdbc::JTDS.driver_name # net.sourceforge.jtds.jdbc.Driver
config[:adapter_spec] = ::ArJdbc::MsSQL

url = "jdbc:jtds:sqlserver://#{config[:host]}:#{config[:port]}/#{config[:database]}"

# Instance is often a preferrable alternative to port when dynamic ports are used.
# If instance is specified then port is essentially ignored.
url << ";instance=#{config[:instance]}" if config[:instance]

# This will enable windows domain-based authentication and will require the JTDS native libraries be available.
url << ";domain=#{config[:domain]}" if config[:domain]

# AppName is shown in sql server as additional information against the connection.
url << ";appname=#{config[:appname]}" if config[:appname]
config[:url] ||= url
config[:url] ||= begin
url = "jdbc:jtds:sqlserver://#{config[:host]}:#{config[:port]}/#{config[:database]}"
# Instance is often a preferrable alternative to port when dynamic ports are used.
# If instance is specified then port is essentially ignored.
url << ";instance=#{config[:instance]}" if config[:instance]
# This will enable windows domain-based authentication and will require the JTDS native libraries be available.
url << ";domain=#{config[:domain]}" if config[:domain]
# AppName is shown in sql server as additional information against the connection.
url << ";appname=#{config[:appname]}" if config[:appname]
url
end

unless config[:domain]
config[:username] ||= "sa"
Expand Down
2 changes: 1 addition & 1 deletion lib/arjdbc/mysql/connection_methods.rb
Expand Up @@ -14,7 +14,7 @@ def mysql_connection(config)
options['useUnicode'] ||= 'true'
options['characterEncoding'] = config[:encoding] || 'utf8'
config[:url] ||= "jdbc:mysql://#{config[:host]}:#{config[:port]}/#{config[:database]}"
config[:driver] ||= "com.mysql.jdbc.Driver"
config[:driver] ||= ::Jdbc::MySQL.driver_name # com.mysql.jdbc.Driver
config[:adapter_class] = ActiveRecord::ConnectionAdapters::MysqlAdapter
config[:adapter_spec] = ::ArJdbc::MySQL
connection = jdbc_connection(config)
Expand Down
2 changes: 1 addition & 1 deletion lib/arjdbc/postgresql/connection_methods.rb
Expand Up @@ -10,7 +10,7 @@ def postgresql_connection(config)
config[:port] ||= 5432
config[:url] ||= "jdbc:postgresql://#{config[:host]}:#{config[:port]}/#{config[:database]}"
config[:url] << config[:pg_params] if config[:pg_params]
config[:driver] ||= "org.postgresql.Driver"
config[:driver] ||= ::Jdbc::Postgres.driver_name # org.postgresql.Driver
config[:adapter_class] = ActiveRecord::ConnectionAdapters::PostgreSQLAdapter
config[:adapter_spec] = ::ArJdbc::PostgreSQL
conn = jdbc_connection(config)
Expand Down
2 changes: 1 addition & 1 deletion lib/arjdbc/sqlite3/connection_methods.rb
Expand Up @@ -11,7 +11,7 @@ def sqlite3_connection(config)
database = config[:database]
database = '' if database == ':memory:'
config[:url] ||= "jdbc:sqlite:#{database}"
config[:driver] ||= "org.sqlite.JDBC"
config[:driver] ||= ::Jdbc::SQLite3.driver_name # org.sqlite.JDBC
config[:adapter_class] = ActiveRecord::ConnectionAdapters::SQLite3Adapter
config[:adapter_spec] = ::ArJdbc::SQLite3
jdbc_connection(config)
Expand Down

0 comments on commit 3d61ee3

Please sign in to comment.