activerecord-jdbc-alt-adapter 72.1.0-java → 80.0.0.rc1-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/main.yml +23 -16
  3. data/.github/workflows/ruby.yml +123 -18
  4. data/.mise.toml +3 -0
  5. data/Gemfile +43 -48
  6. data/README.md +3 -2
  7. data/RUNNING_TESTS.md +9 -1
  8. data/Rakefile +63 -15
  9. data/activerecord-jdbc-adapter.gemspec +2 -2
  10. data/activerecord-jdbc-alt-adapter.gemspec +1 -1
  11. data/lib/arjdbc/abstract/core.rb +0 -17
  12. data/lib/arjdbc/abstract/database_statements.rb +21 -18
  13. data/lib/arjdbc/jdbc/adapter_java.jar +0 -0
  14. data/lib/arjdbc/mssql/adapter.rb +11 -11
  15. data/lib/arjdbc/mssql/database_statements.rb +30 -28
  16. data/lib/arjdbc/mssql/explain_support.rb +6 -1
  17. data/lib/arjdbc/mssql.rb +1 -1
  18. data/lib/arjdbc/postgresql/adapter.rb +4 -1
  19. data/lib/arjdbc/postgresql/database_statements.rb +45 -0
  20. data/lib/arjdbc/postgresql/schema_statements.rb +17 -0
  21. data/lib/arjdbc/sqlite3/adapter.rb +51 -7
  22. data/lib/arjdbc/sqlite3/database_statements.rb +26 -0
  23. data/lib/arjdbc/version.rb +1 -1
  24. data/pom.xml +3 -3
  25. data/rakelib/02-test.rake +1 -1
  26. data/rakelib/db.rake +5 -3
  27. data/rakelib/rails.rake +0 -1
  28. data/src/java/arjdbc/ArJdbcModule.java +13 -10
  29. data/src/java/arjdbc/db2/DB2Module.java +4 -4
  30. data/src/java/arjdbc/db2/DB2RubyJdbcConnection.java +8 -9
  31. data/src/java/arjdbc/h2/H2Module.java +2 -1
  32. data/src/java/arjdbc/h2/H2RubyJdbcConnection.java +8 -7
  33. data/src/java/arjdbc/hsqldb/HSQLDBModule.java +5 -6
  34. data/src/java/arjdbc/jdbc/DataSourceConnectionFactory.java +4 -3
  35. data/src/java/arjdbc/jdbc/DriverWrapper.java +13 -8
  36. data/src/java/arjdbc/jdbc/JdbcResult.java +10 -7
  37. data/src/java/arjdbc/jdbc/RubyJdbcConnection.java +168 -154
  38. data/src/java/arjdbc/mssql/MSSQLModule.java +3 -3
  39. data/src/java/arjdbc/mssql/MSSQLRubyJdbcConnection.java +13 -9
  40. data/src/java/arjdbc/mysql/MySQLModule.java +3 -3
  41. data/src/java/arjdbc/mysql/MySQLRubyJdbcConnection.java +25 -23
  42. data/src/java/arjdbc/oracle/OracleModule.java +2 -3
  43. data/src/java/arjdbc/oracle/OracleRubyJdbcConnection.java +22 -18
  44. data/src/java/arjdbc/postgresql/PostgreSQLModule.java +2 -3
  45. data/src/java/arjdbc/postgresql/PostgreSQLResult.java +24 -12
  46. data/src/java/arjdbc/postgresql/PostgreSQLRubyJdbcConnection.java +16 -12
  47. data/src/java/arjdbc/sqlite3/SQLite3Module.java +2 -3
  48. data/src/java/arjdbc/sqlite3/SQLite3RubyJdbcConnection.java +78 -29
  49. data/src/java/arjdbc/util/DateTimeUtils.java +7 -5
  50. data/src/java/arjdbc/util/ObjectSupport.java +2 -2
  51. data/src/java/arjdbc/util/StringHelper.java +1 -1
  52. metadata +7 -6
  53. data/.travis.yml +0 -128
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: baaa50d113a2274f8903a79fbf8e4b39a6c11aebdc2d0990096a85607b066008
4
- data.tar.gz: d22231445a8f984983411e62f83882aeb1e0c6f2e77c8cb9c9a406b807cf0b67
3
+ metadata.gz: af1013cc5645ba0826a27708509821f2f209c2a1458a210fb0e08b8c009d97b9
4
+ data.tar.gz: b359f9f151a47ba7b10f8416a90bec25c09147a56b76957f4c6bf849156a8a3f
5
5
  SHA512:
6
- metadata.gz: edb3438cd5ddcce496b11f475ab8e57ecaef28d4d17f27a20dac22e2bad94af7fc71c3c21e90febc5c08240f53b501f04e817ef9ffa62250dbb1b877dc70ec6a
7
- data.tar.gz: 2f742a3523f864599b2e4f9813d55558d74430990227bff4bbdeec1695a42687fa2624fae8a75af60b2e5ce43f19911b867fc85523c502b95a2a355eb1ee8c7a
6
+ metadata.gz: d05fd360ff0fcd095f5658159d6007b62cb176b30ab43713a6030df3281f18420ec41a781733921075152d3750490af54bcd6dfbe6857c074a727527b4ec67f8
7
+ data.tar.gz: 0b30b95dd040bb21713d18d9ac3558a30d85b3139d7cd665054a20a2bbedab253e15b85fcb360aaf8f27045683f0507ab2b98805b2c7e8abb03f79b9f0af64b8
@@ -27,7 +27,7 @@ jobs:
27
27
  strategy:
28
28
  fail-fast: false
29
29
  matrix:
30
- ruby-version: ['jruby-9.4.8.0']
30
+ ruby-version: ['jruby-10.0.6.0']
31
31
  db: ['mssql']
32
32
  test_targets: ['test_mssql']
33
33
 
@@ -36,18 +36,19 @@ jobs:
36
36
  # https://learn.microsoft.com/en-au/answers/questions/1853144/error-failed-to-initialize-container-mcr-microsoft
37
37
  services:
38
38
  mssql:
39
- image: mcr.microsoft.com/mssql/server:2019-CU27-ubuntu-20.04
39
+ image: mcr.microsoft.com/mssql/server:2022-CU26-ubuntu-22.04
40
40
  env:
41
41
  ACCEPT_EULA: Y
42
42
  MSSQL_SA_PASSWORD: Password12!
43
43
  ports:
44
44
  - 1433:1433
45
45
  options: >-
46
- --health-cmd="/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P \"Password12!\" -l 30 -Q \"SELECT 1\""
46
+ --health-cmd="/opt/mssql-tools18/bin/sqlcmd -S localhost -U SA -P $MSSQL_SA_PASSWORD -l 30 -C -Q 'SELECT 1'"
47
47
  --health-start-period 10s
48
48
  --health-interval 10s
49
49
  --health-timeout 5s
50
50
  --health-retries 10
51
+ --name ci_sqlserver
51
52
 
52
53
  env:
53
54
  DB: ${{ matrix.db }}
@@ -63,7 +64,10 @@ jobs:
63
64
  ruby-version: ${{ matrix.ruby-version }}
64
65
  bundler-cache: true # runs 'bundle install' and caches installed gems automatically
65
66
  - name: Setup database
66
- run: /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "Password12!" -Q "CREATE DATABASE arjdbc_test;"
67
+ env:
68
+ MSSQL_SA_PASSWORD: Password12!
69
+ run: |
70
+ docker exec ci_sqlserver /opt/mssql-tools18/bin/sqlcmd -S localhost -U SA -P $MSSQL_SA_PASSWORD -C -Q "CREATE DATABASE arjdbc_test;"
67
71
  - name: Build
68
72
  run: |
69
73
  rake jar
@@ -78,7 +82,7 @@ jobs:
78
82
  strategy:
79
83
  fail-fast: false
80
84
  matrix:
81
- ruby-version: ['jruby-9.4.8.0']
85
+ ruby-version: ['jruby-10.0.6.0']
82
86
  db: ['sqlite3']
83
87
  test_targets: ['test_sqlite3']
84
88
 
@@ -107,7 +111,7 @@ jobs:
107
111
  strategy:
108
112
  fail-fast: false
109
113
  matrix:
110
- ruby-version: ['jruby-9.4.8.0']
114
+ ruby-version: ['jruby-10.0.6.0']
111
115
  db: ['postgresql']
112
116
  test_targets: ["db:postgresql test_postgresql"]
113
117
  prepared_statements: ['false', 'true']
@@ -153,25 +157,26 @@ jobs:
153
157
  strategy:
154
158
  fail-fast: false
155
159
  matrix:
156
- ruby-version: [ 'jruby-9.4.8.0' ]
160
+ ruby-version: [ 'jruby-10.0.6.0' ]
157
161
  db: [ 'mssql' ]
158
162
  test_targets: [ "rails:test_mssql" ]
159
- ar_version: ["7-2-stable-dev"]
163
+ ar_version: ["8-0-stable-dev"]
160
164
 
161
165
  services:
162
166
  mssql:
163
- image: mcr.microsoft.com/mssql/server:2019-CU27-ubuntu-20.04
167
+ image: mcr.microsoft.com/mssql/server:2022-CU26-ubuntu-22.04
164
168
  env:
165
169
  ACCEPT_EULA: Y
166
170
  MSSQL_SA_PASSWORD: Password12!
167
171
  ports:
168
172
  - 1433:1433
169
173
  options: >-
170
- --health-cmd="/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P \"Password12!\" -l 30 -Q \"SELECT 1\""
174
+ --health-cmd="/opt/mssql-tools18/bin/sqlcmd -S localhost -U SA -P $MSSQL_SA_PASSWORD -l 30 -C -Q 'SELECT 1'"
171
175
  --health-start-period 10s
172
176
  --health-interval 10s
173
177
  --health-timeout 5s
174
178
  --health-retries 10
179
+ --name ci_sqlserver
175
180
 
176
181
  env:
177
182
  DB: ${{ matrix.db }}
@@ -189,9 +194,11 @@ jobs:
189
194
  ruby-version: ${{ matrix.ruby-version }}
190
195
  bundler-cache: true # runs 'bundle install' and caches installed gems automatically
191
196
  - name: Setup database
197
+ env:
198
+ MSSQL_SA_PASSWORD: Password12!
192
199
  run: |
193
- /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "Password12!" -Q "CREATE DATABASE jdbc_arunit;"
194
- /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "Password12!" -Q "CREATE DATABASE jdbc_arunit2;"
200
+ docker exec ci_sqlserver /opt/mssql-tools18/bin/sqlcmd -S localhost -U SA -P $MSSQL_SA_PASSWORD -C -Q "CREATE DATABASE jdbc_arunit;"
201
+ docker exec ci_sqlserver /opt/mssql-tools18/bin/sqlcmd -S localhost -U SA -P $MSSQL_SA_PASSWORD -C -Q "CREATE DATABASE jdbc_arunit2;"
195
202
  - name: Build
196
203
  run: |
197
204
  rake jar # compiles ext generates: lib/arjdbc/jdbc/adapter_java.jar
@@ -206,10 +213,10 @@ jobs:
206
213
  strategy:
207
214
  fail-fast: false
208
215
  matrix:
209
- ruby-version: ['jruby-9.4.8.0']
216
+ ruby-version: ['jruby-10.0.6.0']
210
217
  db: ['sqlite3']
211
218
  test_targets: ["rails:test_sqlite3"]
212
- ar_version: ["7-1-stable"]
219
+ ar_version: ["8-0-stable-dev"]
213
220
 
214
221
  env:
215
222
  DB: ${{ matrix.db }}
@@ -238,10 +245,10 @@ jobs:
238
245
  strategy:
239
246
  fail-fast: false
240
247
  matrix:
241
- ruby-version: [ 'jruby-9.4.8.0' ]
248
+ ruby-version: [ 'jruby-10.0.6.0' ]
242
249
  db: [ 'postgresql' ]
243
250
  test_targets: [ "rails:test_postgresql" ]
244
- ar_version: ["7-1-stable"]
251
+ ar_version: ["8-0-stable-dev"]
245
252
  prepared_statements: [ 'false', 'true' ]
246
253
 
247
254
  services:
@@ -7,11 +7,7 @@
7
7
 
8
8
  name: Ruby
9
9
 
10
- on:
11
- push:
12
- branches: [ master ]
13
- pull_request:
14
- branches: [ master ]
10
+ on: [push, pull_request]
15
11
 
16
12
  permissions:
17
13
  contents: read
@@ -27,13 +23,13 @@ jobs:
27
23
  ruby-version: ['jruby-head']
28
24
  db: ['mysql2']
29
25
  test_targets: ["rails:test_mysql2"]
30
- ar_version: ["7-2-stable"]
26
+ ar_version: ["8-0-stable"]
31
27
  prepared_statements: ['false', 'true']
32
28
  driver: ['MySQL']
33
29
 
34
30
  services:
35
31
  mysql:
36
- image: mysql:5.7
32
+ image: mysql:8
37
33
  ports:
38
34
  - 3306
39
35
 
@@ -46,11 +42,19 @@ jobs:
46
42
 
47
43
  steps:
48
44
  - uses: actions/checkout@v4
45
+ - name: Set up Java 21
46
+ uses: actions/setup-java@v4
47
+ with:
48
+ distribution: 'temurin'
49
+ java-version: '21'
49
50
  - name: Set up Ruby
50
51
  uses: ruby/setup-ruby@v1
51
52
  with:
52
53
  ruby-version: ${{ matrix.ruby-version }}
53
54
  bundler-cache: true # runs 'bundle install' and caches installed gems automatically
55
+ - name: Setup gdiff
56
+ run: |
57
+ sudo ln -s /usr/bin/diff /usr/bin/gdiff || true
54
58
  - name: Setup database
55
59
  run: |
56
60
  sudo service mysql start
@@ -79,15 +83,15 @@ jobs:
79
83
  ruby-version: [ 'jruby-head' ]
80
84
  db: [ 'postgresql' ]
81
85
  test_targets: [ "rails:test_postgresql" ]
82
- ar_version: ["7-2-stable"]
86
+ ar_version: ["8-0-stable"]
83
87
  prepared_statements: [ 'false', 'true' ]
84
88
 
85
89
  services:
86
90
  postgres:
87
- image: postgres:11
91
+ image: postgres:17
88
92
  env:
89
93
  POSTGRES_PASSWORD: postgres
90
- POSTGRES_HOST_AUTH_METHOD: trust
94
+ POSTGRES_DB: postgres
91
95
  ports:
92
96
  - 5432:5432
93
97
  options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
@@ -99,19 +103,38 @@ jobs:
99
103
  PREPARED_STATEMENTS: ${{ matrix.prepared_statements }}
100
104
  PGHOST: localhost
101
105
  PGPORT: 5432
102
- PGUSER: postgres
106
+ PGUSER: arjdbc
107
+ PGPASSWORD: arjdbc
103
108
 
104
109
  steps:
105
110
  - uses: actions/checkout@v4
111
+ - name: Set up Java 21
112
+ uses: actions/setup-java@v4
113
+ with:
114
+ distribution: 'temurin'
115
+ java-version: '21'
106
116
  - name: Set up Ruby
107
117
  uses: ruby/setup-ruby@v1
108
118
  with:
109
119
  ruby-version: ${{ matrix.ruby-version }}
110
120
  bundler-cache: true # runs 'bundle install' and caches installed gems automatically
121
+ - name: Install PostgreSQL 17 client
122
+ run: |
123
+ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
124
+ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
125
+ sudo apt-get update
126
+ sudo apt-get install -y postgresql-client-17
127
+ - name: Setup gdiff
128
+ run: |
129
+ sudo ln -s /usr/bin/diff /usr/bin/gdiff || true
111
130
  - name: Setup database
112
131
  run: |
113
- psql -c "create database activerecord_unittest;" -U postgres
114
- psql -c "create database activerecord_unittest2;" -U postgres
132
+ PGPASSWORD=postgres psql -h localhost -U postgres -c "CREATE USER arjdbc WITH SUPERUSER CREATEDB LOGIN PASSWORD 'arjdbc';"
133
+ echo "Testing connection as arjdbc user..."
134
+ PGPASSWORD=arjdbc psql -h localhost -d postgres -U arjdbc -c '\l'
135
+ echo "Exit status: $?"
136
+ PGPASSWORD=arjdbc psql -h localhost -d postgres -c "create database activerecord_unittest;" -U arjdbc
137
+ PGPASSWORD=arjdbc psql -h localhost -d postgres -c "create database activerecord_unittest2;" -U arjdbc
115
138
  - name: Build
116
139
  run: |
117
140
  rake jar # compiles ext generates: lib/arjdbc/jdbc/adapter_java.jar
@@ -129,7 +152,7 @@ jobs:
129
152
  ruby-version: ['jruby-head']
130
153
  db: ['sqlite3']
131
154
  test_targets: ["rails:test_sqlite3"]
132
- ar_version: ["7-2-stable"]
155
+ ar_version: ["8-0-stable"]
133
156
 
134
157
  env:
135
158
  DB: ${{ matrix.db }}
@@ -138,11 +161,19 @@ jobs:
138
161
 
139
162
  steps:
140
163
  - uses: actions/checkout@v4
164
+ - name: Set up Java 21
165
+ uses: actions/setup-java@v4
166
+ with:
167
+ distribution: 'temurin'
168
+ java-version: '21'
141
169
  - name: Set up Ruby
142
170
  uses: ruby/setup-ruby@v1
143
171
  with:
144
172
  ruby-version: ${{ matrix.ruby-version }}
145
173
  bundler-cache: true # runs 'bundle install' and caches installed gems automatically
174
+ - name: Setup gdiff
175
+ run: |
176
+ sudo ln -s /usr/bin/diff /usr/bin/gdiff || true
146
177
  - name: Build
147
178
  run: |
148
179
  echo "JAVA_OPTS=$JAVA_OPTS"
@@ -166,7 +197,7 @@ jobs:
166
197
 
167
198
  services:
168
199
  mysql:
169
- image: mysql:5.7
200
+ image: mysql:8
170
201
  ports:
171
202
  - 3306
172
203
 
@@ -180,6 +211,11 @@ jobs:
180
211
 
181
212
  steps:
182
213
  - uses: actions/checkout@v4
214
+ - name: Set up Java 21
215
+ uses: actions/setup-java@v4
216
+ with:
217
+ distribution: 'temurin'
218
+ java-version: '21'
183
219
  - name: Set up Ruby
184
220
  uses: ruby/setup-ruby@v1
185
221
  with:
@@ -211,10 +247,10 @@ jobs:
211
247
 
212
248
  services:
213
249
  postgres:
214
- image: postgres:11
250
+ image: postgres:17
215
251
  env:
216
252
  POSTGRES_PASSWORD: postgres
217
- POSTGRES_HOST_AUTH_METHOD: trust
253
+ POSTGRES_DB: postgres
218
254
  ports:
219
255
  - 5432:5432
220
256
  options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
@@ -227,15 +263,35 @@ jobs:
227
263
  INSERT_RETURNING: ${{ matrix.insert_returning }}
228
264
  PGHOST: localhost
229
265
  PGPORT: 5432
230
- PGUSER: postgres
266
+ PGUSER: arjdbc
267
+ PGPASSWORD: arjdbc
231
268
 
232
269
  steps:
233
270
  - uses: actions/checkout@v4
271
+ - name: Set up Java 21
272
+ uses: actions/setup-java@v4
273
+ with:
274
+ distribution: 'temurin'
275
+ java-version: '21'
234
276
  - name: Set up Ruby
235
277
  uses: ruby/setup-ruby@v1
236
278
  with:
237
279
  ruby-version: ${{ matrix.ruby-version }}
238
280
  bundler-cache: true # runs 'bundle install' and caches installed gems automatically
281
+ - name: Install PostgreSQL 17 client
282
+ run: |
283
+ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
284
+ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
285
+ sudo apt-get update
286
+ sudo apt-get install -y postgresql-client-17
287
+ - name: Setup PostgreSQL user
288
+ run: |
289
+ PGPASSWORD=postgres psql -h localhost -U postgres -c "CREATE USER arjdbc WITH SUPERUSER CREATEDB LOGIN PASSWORD 'arjdbc';"
290
+ - name: Test PostgreSQL connection
291
+ run: |
292
+ echo "Testing connection as arjdbc user..."
293
+ PGPASSWORD=arjdbc psql -h localhost -d postgres -U arjdbc -c '\l'
294
+ echo "Exit status: $?"
239
295
  - name: Build
240
296
  run: |
241
297
  rake jar
@@ -260,6 +316,11 @@ jobs:
260
316
 
261
317
  steps:
262
318
  - uses: actions/checkout@v4
319
+ - name: Set up Java 21
320
+ uses: actions/setup-java@v4
321
+ with:
322
+ distribution: 'temurin'
323
+ java-version: '21'
263
324
  - name: Set up Ruby
264
325
  uses: ruby/setup-ruby@v1
265
326
  with:
@@ -271,3 +332,47 @@ jobs:
271
332
  - name: Run tests
272
333
  run: |
273
334
  bundle exec rake ${{ matrix.test_targets }}
335
+
336
+ build-gems:
337
+
338
+ name: Build ActiveRecord-JDBC gems
339
+ runs-on: ubuntu-latest
340
+
341
+ env:
342
+ JRUBY_OPTS: "-J-Xms64M -J-Xmx1024M --dev"
343
+
344
+ steps:
345
+ - uses: actions/checkout@v4
346
+ - name: Set up Java 21
347
+ uses: actions/setup-java@v4
348
+ with:
349
+ distribution: 'temurin'
350
+ java-version: '21'
351
+ - name: Set up Ruby
352
+ uses: ruby/setup-ruby@v1
353
+ with:
354
+ ruby-version: jruby-10.1
355
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
356
+ - name: Build
357
+ run: |
358
+ rake build:adapters
359
+ - name: cache main adapter gem
360
+ uses: actions/upload-artifact@v7
361
+ with:
362
+ path: pkg/activerecord-jdbc-adapter*.gem
363
+ archive: false
364
+ - name: cache sqlite3 adapter gem
365
+ uses: actions/upload-artifact@v7
366
+ with:
367
+ path: pkg/activerecord-jdbcsqlite3-adapter*.gem
368
+ archive: false
369
+ - name: cache mysql adapter gem
370
+ uses: actions/upload-artifact@v7
371
+ with:
372
+ path: pkg/activerecord-jdbcmysql-adapter*.gem
373
+ archive: false
374
+ - name: cache postgresql adapter gem
375
+ uses: actions/upload-artifact@v7
376
+ with:
377
+ path: pkg/activerecord-jdbcpostgresql-adapter*.gem
378
+ archive: false
data/.mise.toml ADDED
@@ -0,0 +1,3 @@
1
+ [tools]
2
+ java = "temurin-21"
3
+ ruby = "jruby-10.0.0.1"
data/Gemfile CHANGED
@@ -1,5 +1,6 @@
1
1
  source "https://rubygems.org"
2
2
 
3
+ # Rails Dependencies Configuration
3
4
  if ENV['RAILS'] # Use local clone of Rails
4
5
  rails_dir = ENV['RAILS']
5
6
  activerecord_dir = ::File.join(rails_dir, 'activerecord')
@@ -41,76 +42,70 @@ elsif ENV['AR_VERSION'] # Use specific version of AR and not .gemspec version
41
42
  gem 'actionpack', require: false
42
43
  gem 'actionview', require: false
43
44
  end
44
-
45
45
  end
46
46
  end
47
47
  else
48
48
  if defined? JRUBY_VERSION
49
- gemspec name: 'activerecord-jdbc-alt-adapter' # Use versiom from .gemspec
50
- else # read add_dependency 'activerecord', '~> 7.0' and use the same requirement on MRI
49
+ gemspec name: 'activerecord-jdbc-alt-adapter' # Use version from .gemspec
50
+ else # read add_dependency 'activerecord', '~> 8.0' and use the same requirement on MRI
51
51
  ar_req = File.read('activerecord-jdbc-adapter.gemspec').match(/add_dependency.*?activerecord.*['"](.*?)['"]/)[1]
52
52
  raise "add_dependency 'activerecord', ... line not detected in gemspec" unless ar_req
53
53
  gem 'activerecord', ar_req
54
54
  end
55
55
  end
56
56
 
57
+ # Core Dependencies
57
58
  gem 'rake', require: nil
58
59
 
60
+ # Development Dependencies
61
+ group :development do
62
+ gem 'pry-nav'
63
+
64
+ group :doc do
65
+ gem 'yard', require: nil
66
+ gem 'kramdown', require: nil
67
+ end
68
+ end
69
+
70
+ # Test Dependencies
59
71
  group :test do
72
+ # Core testing gems
60
73
  gem 'test-unit', require: nil
61
74
  gem 'test-unit-context', require: nil
62
- gem 'mocha', '~> 1.2', require: false # Rails has '~> 0.14'
75
+ gem 'mocha', '~> 2.0', require: false
76
+ gem 'bcrypt', '~> 3.1', require: false
77
+ gem 'ostruct', require: false
78
+
79
+ # Database adapters for MRI
80
+ platform :mri do
81
+ gem 'mysql2', '~> 0.5', require: nil
82
+ gem 'pg', '~> 1.5', require: nil
83
+ gem 'sqlite3', '~> 2.0', require: nil
84
+ end
85
+
86
+ # JDBC SQLite version override
87
+ platform :jruby do
88
+ gem 'jdbc-mssql', '~> 12.6', require: nil
63
89
 
64
- gem 'bcrypt', '~> 3.1.11', require: false
65
- gem 'jdbc-mssql', '~> 12.6', require: nil
66
- # gem 'pry-debugger-jruby', platform: :jruby
90
+ if sqlite_version = ENV['JDBC_SQLITE_VERSION']
91
+ gem 'jdbc-sqlite3', sqlite_version, require: nil
92
+ end
93
+ end
67
94
  end
68
95
 
96
+ # Rails-specific test dependencies
69
97
  group :rails do
70
- group :test do
71
- gem 'minitest', '~> 5.24.0', require: nil
72
- gem 'minitest-excludes', require: nil
73
- gem 'minitest-rg', require: nil
74
-
75
- gem 'benchmark-ips', require: nil
76
- end
77
-
78
- # AR expects this for testing xml in postgres (maybe others?)
98
+ # Rails testing and support gems
79
99
  gem 'builder', require: nil
80
-
81
- gem 'erubis', require: nil # "~> 2.7.0"
82
-
83
- # Due to rails/activesupport/lib/active_support/message_pack.rb
84
- gem 'msgpack', '>= 1.7.0', require: false
85
-
86
- # NOTE: due rails/activerecord/test/cases/connection_management_test.rb
100
+ gem 'erubis', require: nil
101
+ gem 'msgpack', '~> 1.7', require: false
87
102
  gem 'rack', require: nil
88
-
89
103
  gem 'zeitwerk'
90
- end
91
-
92
- group :development do
93
- #gem 'ruby-debug', require: nil # if ENV['DEBUG']
94
- group :doc do
95
- gem 'yard', require: nil
96
- gem 'kramdown', require: nil
97
- end
98
- end
99
104
 
100
- group :test do
101
- # for testing against different version(s)
102
- if sqlite_version = ENV['JDBC_SQLITE_VERSION']
103
- gem 'jdbc-sqlite3', sqlite_version, require: nil, platform: :jruby
105
+ group :test do
106
+ gem 'minitest-excludes', require: nil
107
+ gem 'minitest-rg', require: nil
108
+ gem 'minitest-rails', require: nil
109
+ gem 'benchmark-ips', require: nil
104
110
  end
105
-
106
- gem 'mysql2', '>= 0.4.4', require: nil, platform: :mri
107
- gem 'pg', '>= 0.18.0', require: nil, platform: :mri
108
- gem 'sqlite3', '~> 1.4', require: nil, platform: :mri
109
-
110
- # group :mssql do
111
- # gem 'tiny_tds', require: nil, platform: :mri
112
- # gem 'activerecord-sqlserver-adapter', require: nil, platform: :mri
113
- # end
114
111
  end
115
-
116
- gem 'pry-nav'
data/README.md CHANGED
@@ -146,9 +146,10 @@ Versions are targeted at certain versions of Rails and live on their own branche
146
146
  | 61.x | 6.1.x | 61-stable | 9.2.7 | 8 |
147
147
  | 70.x | 7.0.x | 70-stable | 9.3.0 | 8 |
148
148
  | 71.x | 7.1.x | 71-stable | 9.4.3 | 8 |
149
- | 72.x | 7.2.x | master | 9.4.3 | 8 |
149
+ | 72.x | 7.2.x | 72-stable | 9.4.3 | 8 |
150
+ | 80.x | 8.0.x | master | 10.0.0 | 21 |
150
151
 
151
- Note: 72.x is still under development and not supported yet.
152
+ Note: 80.x is still under development and not supported yet.
152
153
 
153
154
  Note that JRuby 9.1.x and JRuby 9.2.x are at end-of-life. We recommend Java 8
154
155
  at a minimum for all versions.
data/RUNNING_TESTS.md CHANGED
@@ -83,7 +83,15 @@ CREATE DATABASE activerecord_unittest2;
83
83
  GRANT ALL PRIVILEGES ON activerecord_unittest2.* TO 'rails'@'localhost';
84
84
  ```
85
85
 
86
- Then edit test/rails/config.yml for the appropriate configuration credentials.
86
+ Then edit test/rails/config.yml for the appropriate configuration credentials. You may need to add a "password: testtest9" entry to authenticate.
87
+
88
+ Additionally, you may need to add the following to the config.yml file to disable SSL and allow public key retrieval:
89
+
90
+ ```yaml
91
+ properties:
92
+ useSSL: false
93
+ allowPublicKeyRetrieval: true
94
+ ```
87
95
 
88
96
  ### ActiveRecord (Rails) Tests
89
97