Diff
Modified: trunk/activerecord-jdbc/History.txt (655 => 656)
--- trunk/activerecord-jdbc/History.txt 2007-06-22 17:13:52 UTC (rev 655)
+++ trunk/activerecord-jdbc/History.txt 2007-06-22 23:30:34 UTC (rev 656)
@@ -1,3 +1,10 @@
+== 0.5
+
+- It is no longer necessary to specify :driver and :url configuration parameters for the mysql,
+ postgresql, oracle, derby, hsqldb, and h2 adapters. The previous configuration is still
+ valid and compatible, but for new applications, this makes it possible to use the exact same
+ database.yml configuration as Rails applications running under Matz Ruby.
+
== 0.4
- Release coincides with JRuby 1.0 release
Modified: trunk/activerecord-jdbc/Rakefile (655 => 656)
--- trunk/activerecord-jdbc/Rakefile 2007-06-22 17:13:52 UTC (rev 655)
+++ trunk/activerecord-jdbc/Rakefile 2007-06-22 23:30:34 UTC (rev 656)
@@ -40,7 +40,7 @@
desc "Run AR-JDBC tests"
if RUBY_PLATFORM =~ /java/
# TODO: add more databases into the standard tests here.
- task :test => [:test_mysql, :test_derby, :test_hsqldb]
+ task :test => [:test_mysql, :test_jdbc, :test_derby, :test_hsqldb]
else
task :test => [:test_mysql]
end
@@ -50,6 +50,11 @@
t.libs << 'test'
end
+Rake::TestTask.new(:test_jdbc) do |t|
+ t.test_files = FileList['test/generic_jdbc_connection_test.rb']
+ t.libs << 'test'
+end
+
Rake::TestTask.new(:test_hsqldb) do |t|
t.test_files = FileList['test/hsqldb_simple_test.rb']
t.libs << 'test'
@@ -84,7 +89,7 @@
begin
require 'hoe'
- Hoe.new("ActiveRecord-JDBC", "0.4") do |p|
+ Hoe.new("ActiveRecord-JDBC", "0.5") do |p|
p.rubyforge_name = "jruby-extras"
p.url = ""
p.author = "Nick Sieger, Ola Bini and JRuby contributors"
Added: trunk/activerecord-jdbc/lib/active_record/connection_adapters/derby_adapter.rb (0 => 656)
--- trunk/activerecord-jdbc/lib/active_record/connection_adapters/derby_adapter.rb (rev 0)
+++ trunk/activerecord-jdbc/lib/active_record/connection_adapters/derby_adapter.rb 2007-06-22 23:30:34 UTC (rev 656)
@@ -0,0 +1 @@
+require 'active_record/connection_adapters/jdbc_adapter'
\ No newline at end of file
Added: trunk/activerecord-jdbc/lib/active_record/connection_adapters/h2_adapter.rb (0 => 656)
--- trunk/activerecord-jdbc/lib/active_record/connection_adapters/h2_adapter.rb (rev 0)
+++ trunk/activerecord-jdbc/lib/active_record/connection_adapters/h2_adapter.rb 2007-06-22 23:30:34 UTC (rev 656)
@@ -0,0 +1 @@
+require 'active_record/connection_adapters/jdbc_adapter'
\ No newline at end of file
Added: trunk/activerecord-jdbc/lib/active_record/connection_adapters/hsqldb_adapter.rb (0 => 656)
--- trunk/activerecord-jdbc/lib/active_record/connection_adapters/hsqldb_adapter.rb (rev 0)
+++ trunk/activerecord-jdbc/lib/active_record/connection_adapters/hsqldb_adapter.rb 2007-06-22 23:30:34 UTC (rev 656)
@@ -0,0 +1 @@
+require 'active_record/connection_adapters/jdbc_adapter'
\ No newline at end of file
Modified: trunk/activerecord-jdbc/lib/active_record/connection_adapters/jdbc_adapter.rb (655 => 656)
--- trunk/activerecord-jdbc/lib/active_record/connection_adapters/jdbc_adapter.rb 2007-06-22 17:13:52 UTC (rev 655)
+++ trunk/activerecord-jdbc/lib/active_record/connection_adapters/jdbc_adapter.rb 2007-06-22 23:30:34 UTC (rev 656)
@@ -37,9 +37,54 @@
module ActiveRecord
class Base
- def self.jdbc_connection(config)
- connection = ConnectionAdapters::JdbcConnection.new(config)
- ConnectionAdapters::JdbcAdapter.new(connection, logger, config)
+ class << self
+ def jdbc_connection(config)
+ connection = ConnectionAdapters::JdbcConnection.new(config)
+ ConnectionAdapters::JdbcAdapter.new(connection, logger, config)
+ end
+ alias jndi_connection jdbc_connection
+
+ def mysql_connection(config)
+ config[:url] ||= "jdbc:mysql://#{config[:host]}/#{config[:database]}"
+ config[:driver] = "com.mysql.jdbc.Driver"
+ jdbc_connection(config)
+ end
+
+ def postgresql_connection(config)
+ config[:url] ||= "jdbc:postgresql://#{config[:host]}/#{config[:database]}"
+ config[:driver] ||= "org.postgresql.Driver"
+ jdbc_connection(config)
+ end
+
+ def oracle_connection(config)
+ config[:url] ||= "jdbc:oracle:thin:@#{config[:host]}:#{config[:database]}"
+ config[:driver] ||= "oracle.jdbc.driver.OracleDriver"
+ jdbc_connection(config)
+ end
+
+ def embedded_driver(config)
+ config[:username] ||= "sa"
+ config[:password] ||= ""
+ jdbc_connection(config)
+ end
+
+ def derby_connection(config)
+ config[:url] ||= "jdbc:derby:#{config[:database]};create=true"
+ config[:driver] ||= "org.apache.derby.jdbc.EmbeddedDriver"
+ embedded_driver(config)
+ end
+
+ def hsqldb_connection(config)
+ config[:url] ||= "jdbc:hsqldb:#{config[:database]}"
+ config[:driver] ||= "org.hsqldb.jdbcDriver"
+ embedded_driver(config)
+ end
+
+ def h2_connection(config)
+ config[:url] ||= "jdbc:h2:#{config[:database]}"
+ config[:driver] ||= "org.h2.Driver"
+ embedded_driver(config)
+ end
end
alias :attributes_with_quotes_pre_oracle :attributes_with_quotes
@@ -341,6 +386,8 @@
end
class JdbcAdapter < AbstractAdapter
+ attr_reader :config
+
ADAPTER_TYPES = {
/oracle/i => lambda{|cfg,adapt| adapt.extend(::JdbcSpec::Oracle)},
/mimer/i => lambda{|cfg,adapt| adapt.extend(::JdbcSpec::Mimer)},
Added: trunk/activerecord-jdbc/lib/active_record/connection_adapters/jndi_adapter.rb (0 => 656)
--- trunk/activerecord-jdbc/lib/active_record/connection_adapters/jndi_adapter.rb (rev 0)
+++ trunk/activerecord-jdbc/lib/active_record/connection_adapters/jndi_adapter.rb 2007-06-22 23:30:34 UTC (rev 656)
@@ -0,0 +1 @@
+require 'active_record/connection_adapters/jdbc_adapter'
\ No newline at end of file
Added: trunk/activerecord-jdbc/lib/active_record/connection_adapters/mysql_adapter.rb (0 => 656)
--- trunk/activerecord-jdbc/lib/active_record/connection_adapters/mysql_adapter.rb (rev 0)
+++ trunk/activerecord-jdbc/lib/active_record/connection_adapters/mysql_adapter.rb 2007-06-22 23:30:34 UTC (rev 656)
@@ -0,0 +1 @@
+require 'active_record/connection_adapters/jdbc_adapter'
Added: trunk/activerecord-jdbc/lib/active_record/connection_adapters/oracle_adapter.rb (0 => 656)
--- trunk/activerecord-jdbc/lib/active_record/connection_adapters/oracle_adapter.rb (rev 0)
+++ trunk/activerecord-jdbc/lib/active_record/connection_adapters/oracle_adapter.rb 2007-06-22 23:30:34 UTC (rev 656)
@@ -0,0 +1 @@
+require 'active_record/connection_adapters/jdbc_adapter'
\ No newline at end of file
Added: trunk/activerecord-jdbc/lib/active_record/connection_adapters/postgresql_adapter.rb (0 => 656)
--- trunk/activerecord-jdbc/lib/active_record/connection_adapters/postgresql_adapter.rb (rev 0)
+++ trunk/activerecord-jdbc/lib/active_record/connection_adapters/postgresql_adapter.rb 2007-06-22 23:30:34 UTC (rev 656)
@@ -0,0 +1 @@
+require 'active_record/connection_adapters/jdbc_adapter'
\ No newline at end of file
Modified: trunk/activerecord-jdbc/pom.xml (655 => 656)
--- trunk/activerecord-jdbc/pom.xml 2007-06-22 17:13:52 UTC (rev 655)
+++ trunk/activerecord-jdbc/pom.xml 2007-06-22 23:30:34 UTC (rev 656)
@@ -10,7 +10,7 @@
<groupId>org.jruby.testsuites</groupId>
<artifactId>activerecord-jdbc</artifactId>
<packaging>jar</packaging>
- <version>1.0</version>
+ <version>1.1-SNAPSHOT</version>
<name>JRuby ActiveRecord-JDBC testsuite</name>
<description>Test ActiveRecord-JDBC</description>
@@ -18,7 +18,7 @@
<dependency>
<groupId>org.jruby</groupId>
<artifactId>jruby</artifactId>
- <version>1.0</version>
+ <version>1.1-SNAPSHOT</version>
</dependency>
</dependencies>
Modified: trunk/activerecord-jdbc/test/db/derby.rb (655 => 656)
--- trunk/activerecord-jdbc/test/db/derby.rb 2007-06-22 17:13:52 UTC (rev 655)
+++ trunk/activerecord-jdbc/test/db/derby.rb 2007-06-22 23:30:34 UTC (rev 656)
@@ -1,11 +1,8 @@
require 'logger'
config = {
- :adapter => 'jdbc',
- :username => 'sa',
- :password => '',
- :driver => 'org.apache.derby.jdbc.EmbeddedDriver',
- :url ="" 'jdbc:derby:derby-testdb;create=true'
+ :adapter => 'derby',
+ :database => "derby-testdb"
}
ActiveRecord::Base.establish_connection(config)
Modified: trunk/activerecord-jdbc/test/db/h2.rb (655 => 656)
--- trunk/activerecord-jdbc/test/db/h2.rb 2007-06-22 17:13:52 UTC (rev 655)
+++ trunk/activerecord-jdbc/test/db/h2.rb 2007-06-22 23:30:34 UTC (rev 656)
@@ -1,9 +1,6 @@
config = {
- :adapter => 'jdbc',
- :username => 'sa',
- :password => '',
- :driver => 'org.h2.Driver',
- :url ="" 'jdbc:h2:test.db'
+ :adapter => 'h2',
+ :database => 'test.db'
}
ActiveRecord::Base.establish_connection(config)
Modified: trunk/activerecord-jdbc/test/db/hsqldb.rb (655 => 656)
--- trunk/activerecord-jdbc/test/db/hsqldb.rb 2007-06-22 17:13:52 UTC (rev 655)
+++ trunk/activerecord-jdbc/test/db/hsqldb.rb 2007-06-22 23:30:34 UTC (rev 656)
@@ -1,10 +1,6 @@
config = {
- :adapter => 'jdbc',
- :username => 'sa',
- :password => '',
- :driver => 'org.hsqldb.jdbcDriver',
- :url ="" 'jdbc:hsqldb:test.db'
- #:url ="" 'jdbc:hsqldb:mem:test'
+ :adapter => 'hsqldb',
+ :database => 'test.db'
}
ActiveRecord::Base.establish_connection(config)
Added: trunk/activerecord-jdbc/test/db/jdbc.rb (0 => 656)
--- trunk/activerecord-jdbc/test/db/jdbc.rb (rev 0)
+++ trunk/activerecord-jdbc/test/db/jdbc.rb 2007-06-22 23:30:34 UTC (rev 656)
@@ -0,0 +1,9 @@
+config = {
+ :username => 'blog',
+ :password => '',
+ :adapter => 'jdbc',
+ :driver => 'com.mysql.jdbc.Driver',
+ :url ="" 'jdbc:mysql://localhost:3306/weblog_development'
+}
+
+ActiveRecord::Base.establish_connection(config)
Modified: trunk/activerecord-jdbc/test/db/mysql.rb (655 => 656)
--- trunk/activerecord-jdbc/test/db/mysql.rb 2007-06-22 17:13:52 UTC (rev 655)
+++ trunk/activerecord-jdbc/test/db/mysql.rb 2007-06-22 23:30:34 UTC (rev 656)
@@ -1,20 +1,9 @@
config = {
:username => 'blog',
- :password => ''
+ :password => '',
+ :adapter => 'mysql',
+ :database => 'weblog_development',
+ :host => 'localhost'
}
-if RUBY_PLATFORM =~ /java/
- config.update({
- :adapter => 'jdbc',
- :driver => 'com.mysql.jdbc.Driver',
- :url ="" 'jdbc:mysql://localhost:3306/weblog_development',
- })
-else
- config.update({
- :adapter => 'mysql',
- :database => 'weblog_development',
- :host => 'localhost'
- })
-end
-
ActiveRecord::Base.establish_connection(config)
Modified: trunk/activerecord-jdbc/test/db/postgres.rb (655 => 656)
--- trunk/activerecord-jdbc/test/db/postgres.rb 2007-06-22 17:13:52 UTC (rev 655)
+++ trunk/activerecord-jdbc/test/db/postgres.rb 2007-06-22 23:30:34 UTC (rev 656)
@@ -1,8 +1,6 @@
config = {
- :adapter => 'jdbc',
+ :adapter => 'postgresql',
:database => 'weblog_development',
- :url ="" 'jdbc:postgresql://localhost/weblog_development',
- :driver => 'org.postgresql.Driver',
:username => 'blog',
:password => ''
}
Added: trunk/activerecord-jdbc/test/generic_jdbc_connection_test.rb (0 => 656)
--- trunk/activerecord-jdbc/test/generic_jdbc_connection_test.rb (rev 0)
+++ trunk/activerecord-jdbc/test/generic_jdbc_connection_test.rb 2007-06-22 23:30:34 UTC (rev 656)
@@ -0,0 +1,9 @@
+require 'jdbc_common'
+require 'db/jdbc'
+
+class GenericJdbcConnectionTest < Test::Unit::TestCase
+ def test_connection_available_through_jdbc_adapter
+ ActiveRecord::Base.connection.execute("show databases");
+ assert ActiveRecord::Base.connected?
+ end
+end
\ No newline at end of file
Modified: trunk/activerecord-jdbc/test/simple.rb (655 => 656)
--- trunk/activerecord-jdbc/test/simple.rb 2007-06-22 17:13:52 UTC (rev 655)
+++ trunk/activerecord-jdbc/test/simple.rb 2007-06-22 23:30:34 UTC (rev 656)
@@ -115,16 +115,12 @@
end
-class ActiveRecord::Base
- cattr_accessor :defined_connections
-end
-
module MultibyteTestMethods
include MigrationSetup
def setup
super
- config = ActiveRecord::Base.defined_connections["ActiveRecord::Base"].config
+ config = ActiveRecord::Base.connection.config
props = java.util.Properties.new
props.setProperty("user", config[:username])
props.setProperty("password", config[:password])