ActiveRecord-JDBC 0.2.3 → 0.2.4
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +10 -0
- data/Manifest.txt +15 -9
- data/Rakefile +59 -15
- data/lib/active_record/connection_adapters/jdbc_adapter.rb +94 -281
- data/lib/jdbc_adapter.rb +5 -2
- data/lib/jdbc_adapter/jdbc_derby.rb +51 -13
- data/lib/jdbc_adapter/jdbc_mysql.rb +63 -18
- data/lib/jdbc_adapter/missing_functionality_helper.rb +72 -0
- data/lib/jdbc_adapter_internal.jar +0 -0
- data/test/db/derby.rb +2 -2
- data/test/db/jndi_config.rb +30 -0
- data/test/db/postgres.rb +10 -0
- data/test/derby_simple_test.rb +1 -5
- data/test/h2_simple_test.rb +1 -3
- data/test/hsqldb_simple_test.rb +1 -4
- data/test/jdbc_common.rb +6 -0
- data/test/jndi_test.rb +37 -0
- data/test/models/auto_id.rb +0 -1
- data/test/models/data_types.rb +18 -19
- data/test/models/entry.rb +0 -1
- data/test/mysql_simple_test.rb +1 -5
- data/test/postgres_simple_test.rb +12 -0
- data/test/simple.rb +2 -2
- metadata +17 -11
- data/lib/active_record/connection_adapters/jndi_adapter.rb +0 -51
data/test/models/auto_id.rb
CHANGED
data/test/models/data_types.rb
CHANGED
@@ -1,19 +1,18 @@
|
|
1
|
-
require '
|
2
|
-
require '
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
t.column :
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
end
|
1
|
+
require 'rubygems'
|
2
|
+
require 'active_record'
|
3
|
+
|
4
|
+
class DbTypeMigration < ActiveRecord::Migration
|
5
|
+
def self.up
|
6
|
+
create_table "db_types", :force => true do |t|
|
7
|
+
t.column :sample_timestamp, :timestamp
|
8
|
+
t.column :sample_decimal, :decimal, :precision=> 15, :scale => 0
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.down
|
13
|
+
drop_table "db_types"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
class DbType < ActiveRecord::Base
|
18
|
+
end
|
data/test/models/entry.rb
CHANGED
data/test/mysql_simple_test.rb
CHANGED
@@ -4,12 +4,8 @@
|
|
4
4
|
# create database weblog_development;
|
5
5
|
# grant all on weblog_development.* to blog@localhost;
|
6
6
|
|
7
|
-
|
8
|
-
require 'models/auto_id'
|
9
|
-
require 'models/entry'
|
7
|
+
require 'jdbc_common'
|
10
8
|
require 'db/mysql'
|
11
|
-
require 'simple'
|
12
|
-
require 'test/unit'
|
13
9
|
|
14
10
|
class MysqlSimpleTest < Test::Unit::TestCase
|
15
11
|
include SimpleTestMethods
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# To run this script, set up the following postgres user and database:
|
2
|
+
#
|
3
|
+
# sudo -u postgres createuser -D -A -P blog
|
4
|
+
# sudo -u postgres createdb -O blog weblog_development
|
5
|
+
#
|
6
|
+
|
7
|
+
require 'jdbc_common'
|
8
|
+
require 'db/postgres'
|
9
|
+
|
10
|
+
class PostgresSimpleTest < Test::Unit::TestCase
|
11
|
+
include SimpleTestMethods
|
12
|
+
end
|
data/test/simple.rb
CHANGED
@@ -95,10 +95,10 @@ module SimpleTestMethods
|
|
95
95
|
def test_dumping_schema
|
96
96
|
require 'active_record/schema_dumper'
|
97
97
|
@connection.add_index :entries, :title
|
98
|
-
|
98
|
+
StringIO.open do |io|
|
99
99
|
ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.connection, io)
|
100
|
+
assert_match(/add_index "entries",/, io.string)
|
100
101
|
end
|
101
|
-
assert_match(/add_index "entries",/, stio.string)
|
102
102
|
@connection.remove_index :entries, :title
|
103
103
|
|
104
104
|
end
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.2
|
|
3
3
|
specification_version: 1
|
4
4
|
name: ActiveRecord-JDBC
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.2.
|
7
|
-
date: 2007-
|
6
|
+
version: 0.2.4
|
7
|
+
date: 2007-04-24 00:00:00 -05:00
|
8
8
|
summary: JDBC adapter for ActiveRecord, for use within JRuby on Rails.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -34,10 +34,8 @@ files:
|
|
34
34
|
- README.txt
|
35
35
|
- Rakefile
|
36
36
|
- LICENSE
|
37
|
-
- lib/jdbc_adapter.rb
|
38
37
|
- lib/active_record/connection_adapters/jdbc_adapter.rb
|
39
38
|
- lib/active_record/connection_adapters/jdbc_adapter_spec.rb
|
40
|
-
- lib/active_record/connection_adapters/jndi_adapter.rb
|
41
39
|
- lib/jdbc_adapter/jdbc_db2.rb
|
42
40
|
- lib/jdbc_adapter/jdbc_derby.rb
|
43
41
|
- lib/jdbc_adapter/jdbc_firebird.rb
|
@@ -47,29 +45,37 @@ files:
|
|
47
45
|
- lib/jdbc_adapter/jdbc_mysql.rb
|
48
46
|
- lib/jdbc_adapter/jdbc_oracle.rb
|
49
47
|
- lib/jdbc_adapter/jdbc_postgre.rb
|
50
|
-
-
|
51
|
-
-
|
52
|
-
-
|
53
|
-
- test/manualTestDatabase.rb
|
54
|
-
- test/minirunit.rb
|
55
|
-
- test/mysql_simple_test.rb
|
56
|
-
- test/simple.rb
|
48
|
+
- lib/jdbc_adapter/missing_functionality_helper.rb
|
49
|
+
- lib/jdbc_adapter.rb
|
50
|
+
- lib/jdbc_adapter_internal.jar
|
57
51
|
- test/activerecord/connection_adapters/type_conversion_test.rb
|
58
52
|
- test/activerecord/connections/native_jdbc_mysql/connection.rb
|
59
53
|
- test/db/derby.rb
|
60
54
|
- test/db/h2.rb
|
61
55
|
- test/db/hsqldb.rb
|
56
|
+
- test/db/jndi_config.rb
|
62
57
|
- test/db/logger.rb
|
63
58
|
- test/db/mysql.rb
|
59
|
+
- test/db/postgres.rb
|
60
|
+
- test/derby_simple_test.rb
|
61
|
+
- test/h2_simple_test.rb
|
62
|
+
- test/hsqldb_simple_test.rb
|
63
|
+
- test/jdbc_common.rb
|
64
|
+
- test/jndi_test.rb
|
65
|
+
- test/manualTestDatabase.rb
|
64
66
|
- test/minirunit/testConnect.rb
|
65
67
|
- test/minirunit/testH2.rb
|
66
68
|
- test/minirunit/testHsqldb.rb
|
67
69
|
- test/minirunit/testLoadActiveRecord.rb
|
68
70
|
- test/minirunit/testMysql.rb
|
69
71
|
- test/minirunit/testRawSelect.rb
|
72
|
+
- test/minirunit.rb
|
70
73
|
- test/models/auto_id.rb
|
71
74
|
- test/models/data_types.rb
|
72
75
|
- test/models/entry.rb
|
76
|
+
- test/mysql_simple_test.rb
|
77
|
+
- test/postgres_simple_test.rb
|
78
|
+
- test/simple.rb
|
73
79
|
test_files: []
|
74
80
|
|
75
81
|
rdoc_options: []
|
@@ -1,51 +0,0 @@
|
|
1
|
-
require 'active_record/connection_adapters/jdbc_adapter'
|
2
|
-
|
3
|
-
module ActiveRecord #:nodoc:
|
4
|
-
class Base #:nodoc:
|
5
|
-
def self.jdbc_connection(config)
|
6
|
-
config.symbolize_keys
|
7
|
-
if config[:jndi]
|
8
|
-
connection = ConnectionAdapters::JndiConnection.new(config)
|
9
|
-
else
|
10
|
-
connection = ConnectionAdapters::JdbcConnection.new(config)
|
11
|
-
end
|
12
|
-
ConnectionAdapters::JdbcAdapter.new(connection, logger, config)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
module ConnectionAdapters #:nodoc:
|
17
|
-
|
18
|
-
# This adapter allows ActiveRecord to use JNDI to retrieve
|
19
|
-
# a JDBC connection from a previously configured DataSource.
|
20
|
-
# The ActiveRecord configuration looks like this:
|
21
|
-
#
|
22
|
-
# ActiveRecord::Base.establish_connection(
|
23
|
-
# :adapter => 'jdbc',
|
24
|
-
# :jndi => 'java:comp/env/jdbc/test',
|
25
|
-
# :driver => 'sqlserver'
|
26
|
-
# )
|
27
|
-
#
|
28
|
-
# Right now, enough driver information needs to be supplied so that AR-JDBC
|
29
|
-
# can genrate the right flavor of SQL. However, it's not necessary to know
|
30
|
-
# exactly which driver is being used, just enough so the right SQL is generated.
|
31
|
-
#
|
32
|
-
class JndiConnection < JdbcConnection
|
33
|
-
|
34
|
-
def initialize(config)
|
35
|
-
@config = config
|
36
|
-
jndi = @config[:jndi].to_s
|
37
|
-
|
38
|
-
ctx = javax.naming.InitialContext.new
|
39
|
-
ds = ctx.lookup(jndi)
|
40
|
-
@connection = ds.connection
|
41
|
-
set_native_database_types
|
42
|
-
|
43
|
-
@stmts = {}
|
44
|
-
rescue Exception => e
|
45
|
-
raise "The driver encountered an error: #{e}"
|
46
|
-
end
|
47
|
-
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|