activerecord-jdbc-alt-adapter 72.0.0.rc3-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.
- checksums.yaml +4 -4
- data/.github/workflows/main.yml +23 -16
- data/.github/workflows/ruby.yml +123 -18
- data/.mise.toml +3 -0
- data/Gemfile +43 -48
- data/README.md +3 -2
- data/RUNNING_TESTS.md +9 -1
- data/Rakefile +63 -15
- data/activerecord-jdbc-adapter.gemspec +2 -2
- data/activerecord-jdbc-alt-adapter.gemspec +1 -1
- data/lib/arjdbc/abstract/core.rb +0 -17
- data/lib/arjdbc/abstract/database_statements.rb +23 -19
- data/lib/arjdbc/jdbc/adapter_java.jar +0 -0
- data/lib/arjdbc/mssql/adapter.rb +11 -11
- data/lib/arjdbc/mssql/database_statements.rb +32 -29
- data/lib/arjdbc/mssql/explain_support.rb +6 -1
- data/lib/arjdbc/mssql/quoting.rb +9 -0
- data/lib/arjdbc/mssql.rb +1 -1
- data/lib/arjdbc/postgresql/adapter.rb +4 -1
- data/lib/arjdbc/postgresql/database_statements.rb +45 -0
- data/lib/arjdbc/postgresql/schema_statements.rb +17 -0
- data/lib/arjdbc/sqlite3/adapter.rb +51 -7
- data/lib/arjdbc/sqlite3/database_statements.rb +26 -0
- data/lib/arjdbc/version.rb +1 -1
- data/pom.xml +3 -3
- data/rakelib/02-test.rake +1 -1
- data/rakelib/db.rake +5 -3
- data/rakelib/rails.rake +0 -1
- data/src/java/arjdbc/ArJdbcModule.java +13 -10
- data/src/java/arjdbc/db2/DB2Module.java +4 -4
- data/src/java/arjdbc/db2/DB2RubyJdbcConnection.java +8 -9
- data/src/java/arjdbc/h2/H2Module.java +2 -1
- data/src/java/arjdbc/h2/H2RubyJdbcConnection.java +8 -7
- data/src/java/arjdbc/hsqldb/HSQLDBModule.java +5 -6
- data/src/java/arjdbc/jdbc/DataSourceConnectionFactory.java +4 -3
- data/src/java/arjdbc/jdbc/DriverWrapper.java +13 -8
- data/src/java/arjdbc/jdbc/JdbcResult.java +10 -7
- data/src/java/arjdbc/jdbc/RubyJdbcConnection.java +176 -155
- data/src/java/arjdbc/mssql/MSSQLModule.java +3 -3
- data/src/java/arjdbc/mssql/MSSQLRubyJdbcConnection.java +15 -9
- data/src/java/arjdbc/mysql/MySQLModule.java +3 -3
- data/src/java/arjdbc/mysql/MySQLRubyJdbcConnection.java +25 -23
- data/src/java/arjdbc/oracle/OracleModule.java +2 -3
- data/src/java/arjdbc/oracle/OracleRubyJdbcConnection.java +22 -18
- data/src/java/arjdbc/postgresql/PostgreSQLModule.java +2 -3
- data/src/java/arjdbc/postgresql/PostgreSQLResult.java +24 -12
- data/src/java/arjdbc/postgresql/PostgreSQLRubyJdbcConnection.java +25 -12
- data/src/java/arjdbc/sqlite3/SQLite3Module.java +2 -3
- data/src/java/arjdbc/sqlite3/SQLite3RubyJdbcConnection.java +78 -29
- data/src/java/arjdbc/util/DateTimeUtils.java +7 -5
- data/src/java/arjdbc/util/ObjectSupport.java +2 -2
- data/src/java/arjdbc/util/StringHelper.java +1 -1
- metadata +7 -6
- data/.travis.yml +0 -128
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: af1013cc5645ba0826a27708509821f2f209c2a1458a210fb0e08b8c009d97b9
|
|
4
|
+
data.tar.gz: b359f9f151a47ba7b10f8416a90bec25c09147a56b76957f4c6bf849156a8a3f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d05fd360ff0fcd095f5658159d6007b62cb176b30ab43713a6030df3281f18420ec41a781733921075152d3750490af54bcd6dfbe6857c074a727527b4ec67f8
|
|
7
|
+
data.tar.gz: 0b30b95dd040bb21713d18d9ac3558a30d85b3139d7cd665054a20a2bbedab253e15b85fcb360aaf8f27045683f0507ab2b98805b2c7e8abb03f79b9f0af64b8
|
data/.github/workflows/main.yml
CHANGED
|
@@ -27,7 +27,7 @@ jobs:
|
|
|
27
27
|
strategy:
|
|
28
28
|
fail-fast: false
|
|
29
29
|
matrix:
|
|
30
|
-
ruby-version: ['jruby-
|
|
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:
|
|
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-
|
|
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
|
-
|
|
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-
|
|
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-
|
|
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-
|
|
160
|
+
ruby-version: [ 'jruby-10.0.6.0' ]
|
|
157
161
|
db: [ 'mssql' ]
|
|
158
162
|
test_targets: [ "rails:test_mssql" ]
|
|
159
|
-
ar_version: ["
|
|
163
|
+
ar_version: ["8-0-stable-dev"]
|
|
160
164
|
|
|
161
165
|
services:
|
|
162
166
|
mssql:
|
|
163
|
-
image: mcr.microsoft.com/mssql/server:
|
|
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-
|
|
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-
|
|
194
|
-
/opt/mssql-
|
|
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-
|
|
216
|
+
ruby-version: ['jruby-10.0.6.0']
|
|
210
217
|
db: ['sqlite3']
|
|
211
218
|
test_targets: ["rails:test_sqlite3"]
|
|
212
|
-
ar_version: ["
|
|
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-
|
|
248
|
+
ruby-version: [ 'jruby-10.0.6.0' ]
|
|
242
249
|
db: [ 'postgresql' ]
|
|
243
250
|
test_targets: [ "rails:test_postgresql" ]
|
|
244
|
-
ar_version: ["
|
|
251
|
+
ar_version: ["8-0-stable-dev"]
|
|
245
252
|
prepared_statements: [ 'false', 'true' ]
|
|
246
253
|
|
|
247
254
|
services:
|
data/.github/workflows/ruby.yml
CHANGED
|
@@ -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: ["
|
|
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:
|
|
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: ["
|
|
86
|
+
ar_version: ["8-0-stable"]
|
|
83
87
|
prepared_statements: [ 'false', 'true' ]
|
|
84
88
|
|
|
85
89
|
services:
|
|
86
90
|
postgres:
|
|
87
|
-
image: postgres:
|
|
91
|
+
image: postgres:17
|
|
88
92
|
env:
|
|
89
93
|
POSTGRES_PASSWORD: postgres
|
|
90
|
-
|
|
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:
|
|
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 "
|
|
114
|
-
|
|
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: ["
|
|
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:
|
|
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:
|
|
250
|
+
image: postgres:17
|
|
215
251
|
env:
|
|
216
252
|
POSTGRES_PASSWORD: postgres
|
|
217
|
-
|
|
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:
|
|
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
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
|
|
50
|
-
else # read add_dependency 'activerecord', '~>
|
|
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', '~>
|
|
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
|
-
|
|
65
|
-
|
|
66
|
-
|
|
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
|
-
|
|
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 '
|
|
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
|
-
|
|
102
|
-
|
|
103
|
-
gem '
|
|
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 |
|
|
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:
|
|
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
|
|