activerecord-jdbc-alt-adapter 52.2.3-java → 60.1.0-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -0
  3. data/.travis.yml +80 -52
  4. data/Gemfile +10 -3
  5. data/README.md +55 -37
  6. data/Rakefile +31 -5
  7. data/Rakefile.jdbc +8 -1
  8. data/activerecord-jdbc-adapter.gemspec +6 -9
  9. data/activerecord-jdbc-alt-adapter.gemspec +6 -9
  10. data/lib/arel/visitors/sqlserver.rb +33 -23
  11. data/lib/arjdbc/abstract/connection_management.rb +7 -0
  12. data/lib/arjdbc/abstract/core.rb +17 -24
  13. data/lib/arjdbc/abstract/database_statements.rb +31 -20
  14. data/lib/arjdbc/abstract/statement_cache.rb +2 -5
  15. data/lib/arjdbc/abstract/transaction_support.rb +5 -3
  16. data/lib/arjdbc/db2/column.rb +0 -39
  17. data/lib/arjdbc/derby/adapter.rb +1 -20
  18. data/lib/arjdbc/firebird/adapter.rb +0 -21
  19. data/lib/arjdbc/h2/adapter.rb +0 -15
  20. data/lib/arjdbc/hsqldb/adapter.rb +0 -14
  21. data/lib/arjdbc/informix/adapter.rb +0 -23
  22. data/lib/arjdbc/jdbc.rb +0 -4
  23. data/lib/arjdbc/jdbc/adapter.rb +3 -1
  24. data/lib/arjdbc/jdbc/adapter_require.rb +3 -1
  25. data/lib/arjdbc/jdbc/base_ext.rb +3 -1
  26. data/lib/arjdbc/jdbc/callbacks.rb +2 -0
  27. data/lib/arjdbc/jdbc/column.rb +3 -5
  28. data/lib/arjdbc/jdbc/connection.rb +2 -0
  29. data/lib/arjdbc/jdbc/connection_methods.rb +2 -0
  30. data/lib/arjdbc/jdbc/error.rb +2 -0
  31. data/lib/arjdbc/jdbc/extension.rb +2 -0
  32. data/lib/arjdbc/jdbc/java.rb +3 -1
  33. data/lib/arjdbc/jdbc/railtie.rb +3 -1
  34. data/lib/arjdbc/jdbc/rake_tasks.rb +3 -1
  35. data/lib/arjdbc/jdbc/serialized_attributes_helper.rb +3 -1
  36. data/lib/arjdbc/jdbc/type_cast.rb +2 -0
  37. data/lib/arjdbc/jdbc/type_converter.rb +2 -0
  38. data/lib/arjdbc/mssql.rb +3 -1
  39. data/lib/arjdbc/mssql/adapter.rb +112 -46
  40. data/lib/arjdbc/mssql/column.rb +5 -1
  41. data/lib/arjdbc/mssql/connection_methods.rb +13 -2
  42. data/lib/arjdbc/mssql/database_limits.rb +2 -0
  43. data/lib/arjdbc/mssql/database_statements.rb +44 -6
  44. data/lib/arjdbc/mssql/errors.rb +2 -0
  45. data/lib/arjdbc/mssql/explain_support.rb +3 -1
  46. data/lib/arjdbc/mssql/extensions/attribute_methods.rb +5 -1
  47. data/lib/arjdbc/mssql/extensions/calculations.rb +2 -0
  48. data/lib/arjdbc/mssql/quoting.rb +38 -0
  49. data/lib/arjdbc/mssql/schema_creation.rb +24 -2
  50. data/lib/arjdbc/mssql/schema_definitions.rb +10 -0
  51. data/lib/arjdbc/mssql/schema_dumper.rb +2 -0
  52. data/lib/arjdbc/mssql/schema_statements.rb +63 -21
  53. data/lib/arjdbc/mssql/transaction.rb +2 -0
  54. data/lib/arjdbc/mssql/types.rb +2 -0
  55. data/lib/arjdbc/mssql/types/binary_types.rb +2 -0
  56. data/lib/arjdbc/mssql/types/date_and_time_types.rb +2 -0
  57. data/lib/arjdbc/mssql/types/deprecated_types.rb +2 -0
  58. data/lib/arjdbc/mssql/types/numeric_types.rb +2 -0
  59. data/lib/arjdbc/mssql/types/string_types.rb +2 -0
  60. data/lib/arjdbc/mssql/utils.rb +2 -0
  61. data/lib/arjdbc/mysql/adapter.rb +47 -18
  62. data/lib/arjdbc/mysql/connection_methods.rb +13 -7
  63. data/lib/arjdbc/postgresql/adapter.rb +240 -214
  64. data/lib/arjdbc/postgresql/base/array_decoder.rb +2 -0
  65. data/lib/arjdbc/postgresql/base/array_encoder.rb +4 -2
  66. data/lib/arjdbc/postgresql/base/array_parser.rb +4 -2
  67. data/lib/arjdbc/postgresql/base/pgconn.rb +2 -0
  68. data/lib/arjdbc/postgresql/column.rb +11 -6
  69. data/lib/arjdbc/postgresql/connection_methods.rb +3 -1
  70. data/lib/arjdbc/postgresql/name.rb +2 -0
  71. data/lib/arjdbc/postgresql/oid_types.rb +3 -1
  72. data/lib/arjdbc/sqlite3/adapter.rb +188 -180
  73. data/lib/arjdbc/sqlite3/connection_methods.rb +16 -4
  74. data/lib/arjdbc/tasks/databases.rake +13 -10
  75. data/lib/arjdbc/tasks/mssql_database_tasks.rb +49 -5
  76. data/lib/arjdbc/util/quoted_cache.rb +3 -1
  77. data/lib/arjdbc/util/serialized_attributes.rb +3 -1
  78. data/lib/arjdbc/util/table_copier.rb +3 -1
  79. data/lib/arjdbc/version.rb +1 -1
  80. data/pom.xml +4 -4
  81. data/rakelib/01-tomcat.rake +2 -2
  82. data/rakelib/02-test.rake +0 -2
  83. data/rakelib/rails.rake +1 -1
  84. data/src/java/arjdbc/ArJdbcModule.java +5 -5
  85. data/src/java/arjdbc/jdbc/DriverWrapper.java +1 -9
  86. data/src/java/arjdbc/jdbc/RubyJdbcConnection.java +468 -637
  87. data/src/java/arjdbc/mssql/MSSQLRubyJdbcConnection.java +319 -38
  88. data/src/java/arjdbc/mysql/MySQLRubyJdbcConnection.java +13 -23
  89. data/src/java/arjdbc/postgresql/PostgreSQLRubyJdbcConnection.java +44 -31
  90. data/src/java/arjdbc/sqlite3/SQLite3RubyJdbcConnection.java +94 -99
  91. data/src/java/arjdbc/util/DateTimeUtils.java +34 -12
  92. metadata +7 -17
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: afa74b6cea1f8d613568c65eafa0e35b2f40518f81c75616d9780eb9d7331807
4
- data.tar.gz: 8fa023e378edad7552c2209326646d62381832fd18273b38d00158810da01009
3
+ metadata.gz: f83a5e387ec9999cc730027498dec97428cfee7b3c3edcc6845a779c01c4272a
4
+ data.tar.gz: 3a7e9ce2b8e6e968bdb21f4ac72a9f498e3226c414ec4b003e4b463dffc74062
5
5
  SHA512:
6
- metadata.gz: 0a94794211883f5c3c39a75211990e09492e1dc7d3535aa0a103b5b7175d5a885813fccc1ad5555973a12b6b73d1b81162f15d39244744dace487c4ce1c9f16d
7
- data.tar.gz: 3d648085d101929af897bded31b1534f243930bf56847b36cd586b5a7172b24e5ac18393001176fcc2c71a92b5ed18755d6ea0a2d1e53c28955ecb111a9ae95f
6
+ metadata.gz: f71a50d80a6f01837512d87a52ef32ec69a245e1927086cc0736efa35835c57710652f1ad6c294039422ad69eea20d308b48df02ba8d43e7c1acea4de7358ee0
7
+ data.tar.gz: 732cde407f1c4ff98bb7e528ea183dd483e2b8edf8a475f60f445dc7580fd8e8d3374ca248b5d7eb2f02b1c596efdeed5ce7dc393563425565657ca6302d6145
data/.gitignore CHANGED
@@ -2,6 +2,7 @@
2
2
  *.tgz
3
3
  *~
4
4
  *.log
5
+ /log/
5
6
  patches*
6
7
  *#
7
8
  TAGS
@@ -33,3 +34,5 @@ activerecord-jdbc.iml
33
34
  lib/arjdbc/jdbc/adapter_java.jar
34
35
  .jrubyrc
35
36
  tags
37
+ pik.sh
38
+ .ruby-version
@@ -1,18 +1,25 @@
1
- language: ruby
2
1
  sudo: false
3
- branches:
4
- only:
5
- - master
6
- - /.*-stable$/
7
- - /^test-.*/
8
- - /maintenance|support/
9
- - /.*dev$/
10
- bundler_args: --without development
11
- script: bundle exec rake ${TEST_PREFIX}test_$DB
2
+ dist: xenial
3
+
4
+ services:
5
+ - mysql
6
+
12
7
  before_install:
13
8
  - unset _JAVA_OPTIONS
14
9
  - rvm @default,@global do gem uninstall bundler -a -x -I || true
15
10
  - gem install bundler -v "~>1.17.3"
11
+ install:
12
+ - bundle install --retry 3 --without development
13
+ # to fix this issue: https://travis-ci.community/t/mariadb-10-1-fails-to-install-on-xenial/3151/3
14
+ - mysql -u root -e 'CREATE USER IF NOT EXISTS travis@localhost; GRANT ALL ON *.* TO travis@localhost;' || true
15
+
16
+ language: ruby
17
+ rvm:
18
+ - jruby-9.2.7.0
19
+ jdk:
20
+ - openjdk8
21
+
22
+ script: bundle exec rake ${TEST_PREFIX}test_$DB
16
23
  before_script:
17
24
  - echo "JAVA_OPTS=$JAVA_OPTS"
18
25
  - export JRUBY_OPTS="-J-Xms64M -J-Xmx1024M"
@@ -38,63 +45,84 @@ before_script:
38
45
  psql -c "create database activerecord_unittest;" -U postgres && \
39
46
  psql -c "create database activerecord_unittest2;" -U postgres \
40
47
  || true
41
- rvm:
42
- - jruby-9.1.16.0
43
- jdk:
44
- - openjdk8
45
- addons:
46
- postgresql: "9.4"
48
+
47
49
  env:
48
- - DB=mysql2 PREPARED_STATEMENTS=false
49
- - DB=mysql2 PREPARED_STATEMENTS=true
50
- - DB=mysql2 DRIVER=MariaDB
51
- - DB=postgresql PREPARED_STATEMENTS=false INSERT_RETURNING=false
52
- - DB=postgresql PREPARED_STATEMENTS=false INSERT_RETURNING=true
53
- - DB=postgresql PREPARED_STATEMENTS=true
54
- - DB=postgresql PREPARED_STATEMENTS=true INSERT_RETURNING=true
55
- - DB=sqlite3 PREPARED_STATEMENTS=false
56
- - DB=sqlite3 PREPARED_STATEMENTS=true
57
- - DB=jndi PREPARED_STATEMENTS=false
58
- - DB=jndi PREPARED_STATEMENTS=true
50
+ global:
51
+ - AR_VERSION="6-0-stable"
59
52
  matrix:
60
53
  allow_failures:
61
54
  - rvm: jruby-head
62
55
  include:
63
- # jruby-9.2
64
- - rvm: jruby-9.2.6.0
65
- env: DB=mysql2
66
- - rvm: jruby-9.2.6.0
67
- env: DB=postgresql
68
- - rvm: jruby-9.2.6.0
69
- env: DB=sqlite3
70
- # jruby-9.2 + Java 11
71
- - rvm: jruby-9.2.6.0
72
- env: DB=mysql2
73
- jdk: openjdk11
74
- - rvm: jruby-9.2.6.0
75
- env: DB=postgresql
76
- jdk: openjdk11
77
- - rvm: jruby-9.2.6.0
78
- env: DB=sqlite3
79
- jdk: openjdk11
56
+ - env: DB=mysql2 PREPARED_STATEMENTS=false
57
+ - env: DB=mysql2 PREPARED_STATEMENTS=true
58
+ - env: DB=mysql2 DRIVER=MariaDB
59
+
60
+ - addons:
61
+ postgresql: "10"
62
+ env: DB=postgresql PREPARED_STATEMENTS=false INSERT_RETURNING=false
63
+ - addons:
64
+ postgresql: "10"
65
+ env: DB=postgresql PREPARED_STATEMENTS=false INSERT_RETURNING=true
66
+ - addons:
67
+ postgresql: "10"
68
+ env: DB=postgresql PREPARED_STATEMENTS=true
69
+ - addons:
70
+ postgresql: "10"
71
+ env: DB=postgresql PREPARED_STATEMENTS=true INSERT_RETURNING=true
72
+ - addons:
73
+ postgresql: "10"
74
+ env: DB=postgresql PREPARED_STATEMENTS=true JRUBY_OPTS=-J-Duser.timezone=America/Detroit
75
+ - addons:
76
+ postgresql: "9.4"
77
+ env: DB=postgresql PREPARED_STATEMENTS=true
78
+
79
+ - env: DB=sqlite3 PREPARED_STATEMENTS=false
80
+ - env: DB=sqlite3 PREPARED_STATEMENTS=true
81
+
82
+ - env: DB=jndi PREPARED_STATEMENTS=false
83
+ - env: DB=jndi PREPARED_STATEMENTS=true
84
+
85
+ # Java 11
86
+ - env: DB=mysql2
87
+ jdk: oraclejdk11
88
+ - env: DB=postgresql
89
+ jdk: oraclejdk11
90
+ addons:
91
+ postgresql: "10"
92
+ - env: DB=sqlite3
93
+ jdk: oraclejdk11
94
+
80
95
  # jruby-head
81
96
  - rvm: jruby-head
82
97
  env: DB=mysql2
83
98
  - rvm: jruby-head
84
99
  env: DB=postgresql
100
+ addons:
101
+ postgresql: "10"
85
102
  - rvm: jruby-head
86
103
  env: DB=sqlite3
104
+
87
105
  # testing against MariaDB
88
106
  - addons:
89
- mariadb: '10.0'
107
+ mariadb: 10.2
90
108
  env: DB=mariadb PREPARED_STATEMENTS=false
91
109
  - addons:
92
- mariadb: '10.1'
110
+ mariadb: 10.3
93
111
  env: DB=mariadb PREPARED_STATEMENTS=true
112
+
94
113
  # Rails test-suite :
95
- - env: DB=mysql2 TEST_PREFIX="rails:" AR_VERSION="v5.2.3" # PS off by default
96
- - env: DB=mysql2 TEST_PREFIX="rails:" AR_VERSION="v5.2.3" PREPARED_STATEMENTS=true
97
- - env: DB=mysql2 TEST_PREFIX="rails:" AR_VERSION="v5.2.3" DRIVER=MariaDB
98
- - env: DB=postgresql TEST_PREFIX="rails:" AR_VERSION="v5.2.3" # PS on by default
99
- - env: DB=postgresql TEST_PREFIX="rails:" AR_VERSION="v5.2.3" PREPARED_STATEMENTS=false
100
- - env: DB=sqlite3 TEST_PREFIX="rails:" AR_VERSION="v5.2.3"
114
+ - env: DB=mysql2 TEST_PREFIX="rails:" AR_VERSION="6-0-stable" # PS off by default
115
+ - env: DB=mysql2 TEST_PREFIX="rails:" AR_VERSION="6-0-stable" PREPARED_STATEMENTS=true
116
+ - env: DB=mysql2 TEST_PREFIX="rails:" AR_VERSION="6-0-stable" DRIVER=MariaDB
117
+
118
+ - addons:
119
+ postgresql: "10"
120
+ env: DB=postgresql TEST_PREFIX="rails:" AR_VERSION="6-0-stable" # PS on by default
121
+ - addons:
122
+ postgresql: "10"
123
+ env: DB=postgresql TEST_PREFIX="rails:" AR_VERSION="6-0-stable" PREPARED_STATEMENTS=false
124
+ - addons:
125
+ postgresql: "9.4"
126
+ env: DB=postgresql TEST_PREFIX="rails:" AR_VERSION="6-0-stable" # PS on by default
127
+
128
+ - env: DB=sqlite3 TEST_PREFIX="rails:" AR_VERSION="6-0-stable"
data/Gemfile CHANGED
@@ -10,10 +10,15 @@ if ENV['RAILS'] # Use local clone of Rails
10
10
 
11
11
  activemodel_dir = ::File.join(rails_dir, 'activemodel')
12
12
  activesupport_dir = ::File.join(rails_dir, 'activesupport')
13
-
13
+ actionpack_dir = ::File.join(rails_dir, 'actionpack')
14
+ actionview_dir = ::File.join(rails_dir, 'actionview')
15
+
14
16
  gem 'activerecord', require: false, path: activerecord_dir
15
17
  gem 'activemodel', require: false, path: activemodel_dir
16
18
  gem 'activesupport', require: false, path: activesupport_dir
19
+ gem 'actionpack', require: false, path: actionpack_dir
20
+ gem 'actionview', require: false, path: actionview_dir
21
+
17
22
  elsif ENV['AR_VERSION'] # Use specific version of AR and not .gemspec version
18
23
  version = ENV['AR_VERSION']
19
24
 
@@ -28,11 +33,13 @@ elsif ENV['AR_VERSION'] # Use specific version of AR and not .gemspec version
28
33
  else # branch
29
34
  opts = {branch: version}
30
35
  end
31
-
36
+
32
37
  git 'https://github.com/rails/rails.git', **opts do
33
38
  gem 'activerecord', require: false
34
39
  gem 'activemodel', require: false
35
40
  gem 'activesupport', require: false
41
+ gem 'actionpack', require: false
42
+ gem 'actionview', require: false
36
43
  end
37
44
  end
38
45
  end
@@ -48,7 +55,7 @@ group :test do
48
55
  gem 'mocha', '~> 1.2', require: false # Rails has '~> 0.14'
49
56
 
50
57
  gem 'bcrypt', '~> 3.1.11', require: false
51
- gem 'jdbc-mssql', '~> 0.6.0', require: nil
58
+ gem 'jdbc-mssql', '~> 0.9.0', require: nil
52
59
  # gem 'pry-debugger-jruby', platform: :jruby
53
60
  end
54
61
 
data/README.md CHANGED
@@ -6,16 +6,20 @@ supported by the original adapter such as PostgreSQL but it is advised to
6
6
  use the [original adapter](https://github.com/jruby/active)
7
7
 
8
8
  This adapter only works with JRuby and it is advised to install the latest
9
- stable versions of Rails
9
+ stable of this adapter and Rails
10
10
 
11
- - For Rails `5.0.7.2` install the `50.3.1` version of this adapter
12
- - For Rails `5.1.7` install the `51.3.0` version of this adapter
13
- - For Rails `5.2.3` install the `52.2.0` version of this adapter
14
-
15
- Support for Rails 6.0 is planned in the future.
11
+ | Gem Version | Rails Version | min JRuby |
12
+ | ----------- | ------------- | --------- |
13
+ | 50.6.1 | 5.0.7.2 | 9.1.x |
14
+ | 51.6.1 | 5.1.7 | 9.1.x |
15
+ | 52.5.1 | 5.2.4.1 | 9.1.x |
16
+ | 60.0.0 | 6.0.2 | 9.2.9 |
16
17
 
17
18
  This adapter passes most of the Rails tests (ActiveRecord tests) with the
18
- exception of some test that are not compatible with the SQL Server
19
+ exception of some test that are not compatible with the SQL Server. To run
20
+ the test use the following fork [Rails](https://github.com/JesseChavez/rails/tree/6-0-stable-dev),
21
+ and the instructions in file `RUNNING_TESTS.md`. The fork has some
22
+ schema tweaks to make it compatible with SQL Server.
19
23
 
20
24
  ### How to use it:
21
25
 
@@ -24,13 +28,17 @@ Add the following to your `Gemfile`:
24
28
  ```ruby
25
29
  platforms :jruby do
26
30
  # Use jdbc as the database for Active Record
27
- gem 'activerecord-jdbc-alt-adapter', '~> 50.3.1', require: 'arjdbc'
28
- gem 'jdbc-mssql', '~> 0.6.0'
31
+ gem 'activerecord-jdbc-alt-adapter', '~> 60.0.0'
32
+ gem 'jdbc-mssql', '~> 0.7.0'
29
33
  end
30
34
  ```
31
35
 
32
- Or look at the sample rails 5.0 app [wombat](https://github.com/JesseChavez/wombat50)
33
- and see how is set up.
36
+ Or look at the sample rails and see how is set up:
37
+
38
+ - Rails 6.0 sample app [wombat60](https://github.com/JesseChavez/wombat60)
39
+
40
+ - Old rails 5.0 app [wombat50](https://github.com/JesseChavez/wombat50)
41
+
34
42
 
35
43
  ### Breaking changes
36
44
 
@@ -102,14 +110,6 @@ production:
102
110
  ```
103
111
 
104
112
 
105
- ### NOTE
106
-
107
- Keep one eye in the Rails connection pool, we have not thoroughly tested that
108
- part since we don't use the default Rails connection pool, other than that
109
- this adapter should just work.
110
-
111
-
112
-
113
113
  # ActiveRecord JDBC Adapter
114
114
 
115
115
  [![Gem Version](https://badge.fury.io/rb/activerecord-jdbc-adapter.svg)][7]
@@ -117,27 +117,28 @@ this adapter should just work.
117
117
  ActiveRecord-JDBC-Adapter (AR-JDBC) is the main database adapter for Rails'
118
118
  *ActiveRecord* component that can be used with [JRuby][0].
119
119
  ActiveRecord-JDBC-Adapter provides full or nearly full support for:
120
- **MySQL**, **PostgreSQL**, **SQLite3**. In the near future there are plans to
121
- add support **MSSQL**. Unless we get more contributions we will not be going
122
- beyond these four adapters. Note that the amount of work needed to get
123
- another adapter is not huge but the amount of testing required to make sure
124
- that adapter continues to work is not something we can do with the resources
125
- we currently have.
120
+ **MySQL**, **PostgreSQL**, **SQLite3** and **MSSQL*** (SQLServer).
126
121
 
127
- For Oracle database users you are encouraged to use
128
- https://github.com/rsim/oracle-enhanced.
122
+ Unless we get more contributions we will not be supporting more adapters.
123
+ Note that the amount of work needed to get another adapter is not huge but
124
+ the amount of testing required to make sure that adapter continues to work
125
+ is not something we can do with the resources we currently have.
126
+
127
+ - for **Oracle** database users you are encouraged to use
128
+ https://github.com/rsim/oracle-enhanced
129
+ - **MSSQL** adapter's gem parts reside in a [separate repository][8]
129
130
 
130
131
  Versions are targeted at certain versions of Rails and live on their own branches.
131
132
 
132
- | Gem Version | Rails Version | Branch |
133
- | ----------- | ------------- | ------ |
134
- | 50.x | 5.0.x | 50-stable |
135
- | 51.x | 5.1.x | 51-stable |
136
- | 52.x | 5.2.x | 52-stable |
137
- | future | latest | master |
133
+ | Gem Version | Rails Version | Branch | min JRuby | min Java |
134
+ | ----------- | ------------- | --------- | --------- | -------- |
135
+ | 50.x | 5.0.x | 50-stable | 9.1.x | 7 |
136
+ | 51.x | 5.1.x | 51-stable | 9.1.x | 7 |
137
+ | 52.x | 5.2.x | 52-stable | 9.1.x | 7 |
138
+ | 60.x | 6.0.x | master | 9.2.7 | 8 |
138
139
 
139
- The minimum version of JRuby for 50+ is JRuby **9.1.x** and
140
- JRuby 9.1+ requires Java 7 or newer (we recommend Java 8 at minimum).
140
+ Note that JRuby 9.1.x is end-of-life. We recommend Java 8 at a minimum for all
141
+ versions.
141
142
 
142
143
  ## Using ActiveRecord JDBC
143
144
 
@@ -151,6 +152,7 @@ adapters are available:
151
152
  - MySQL (`activerecord-jdbcmysql-adapter`)
152
153
  - PostgreSQL (`activerecord-jdbcpostgresql-adapter`)
153
154
  - SQLite3 (`activerecord-jdbcsqlite3-adapter`)
155
+ - MSSQL (`activerecord-jdbcsqlserver-adapter`)
154
156
 
155
157
  2. If you're generating a new Rails application, use the following command:
156
158
 
@@ -193,6 +195,21 @@ production:
193
195
  connectTimeout: 60000
194
196
  ```
195
197
 
198
+ #### MySQL specific notes
199
+
200
+ Depending on the MySQL server configuration, it might be required to set
201
+ additional connection properties for date/time support to work correctly. If you
202
+ encounter problems, try adding this to your database configuration:
203
+
204
+ ```yml
205
+ properties:
206
+ serverTimezone: <%= java.util.TimeZone.getDefault.getID %>
207
+ ```
208
+
209
+ The correct timezone depends on the system setup, but the one shown is a good
210
+ place to start and is actually the correct setting for many systems.
211
+
212
+
196
213
  ### Standalone with ActiveRecord
197
214
 
198
215
  Once the setup is made (see below) you can establish a JDBC connection like this
@@ -267,7 +284,8 @@ ask on the #JRuby IRC channel on http://freenode.net/ (try [web-chat][6]).
267
284
  This project was originally written by [Nick Sieger](http://github.com/nicksieger)
268
285
  and [Ola Bini](http://github.com/olabini) with lots of help from the JRuby community.
269
286
  Polished 3.x compatibility and 4.x support (for AR-JDBC >= 1.3.0) was managed by
270
- [Karol Bucek](http://github.com/kares) among others.
287
+ [Karol Bucek](http://github.com/kares) among others. Support for Rails 6 was
288
+ contributed by [shellyBits GmbH](https://shellybits.ch/)
271
289
 
272
290
  ## License
273
291
 
@@ -285,4 +303,4 @@ license the database's drivers are licensed. See each driver gem's LICENSE.txt.
285
303
  [5]: https://github.com/jruby/activerecord-jdbc-adapter/wiki
286
304
  [6]: https://webchat.freenode.net/?channels=#jruby
287
305
  [7]: http://badge.fury.io/rb/activerecord-jdbc-adapter
288
- [8]: https://github.com/jruby/activerecord-jdbc-adapter/wiki/Migrating-from-1.2.x-to-1.3.0
306
+ [8]: https://github.com/jruby/activerecord-jdbcsqlserver-adapter
data/Rakefile CHANGED
@@ -1,3 +1,29 @@
1
+ # Common usage
2
+ #
3
+ # rake build:adapters - to build all specific adapter gems and the base gem
4
+ # rake release:do - build:adapters + git tag + push gems
5
+ #
6
+ # Environment variables used by this Rakefile:
7
+ #
8
+ # INCLUDE_JAR_IN_GEM [default task - false, other taks - true]:
9
+ # Note: This is something you should not normally have to set.
10
+ # For local development we always will end up including the jar file
11
+ # in any task which generates our main gem. The wrinkle to this
12
+ # is when we do a custom github link in bundler:
13
+ #
14
+ # gem 'ar-jdbc', github: '...'
15
+ #
16
+ # Because we stopped committing a .jar file for every change and so when
17
+ # we include a gem like this it clones the repository and does a default
18
+ # build in rake. This in turn will end up forcing a compile to generate
19
+ # that jar (similar to how c-extensions compile at the time of install).
20
+ # For shipped gems we do include the jar so that people do not require
21
+ # this compile step.
22
+ #
23
+ # NOOP [release:do - false]
24
+ #
25
+ # No commands or gem pushing during a release.
26
+
1
27
  require 'rake/clean'
2
28
 
3
29
  CLEAN.include 'derby*', 'test.db.*', '*test.sqlite3', 'test/reports'
@@ -38,7 +64,8 @@ rake = lambda { |task| ruby "-S", "rake", task }
38
64
 
39
65
  desc "Build #{gem_name} gem into the pkg directory."
40
66
  task :build => :jar do
41
- sh("RELEASE=#{ENV['RELEASE']} gem build -V '#{gemspec_path}'") do
67
+ include_jar = ENV['INCLUDE_JAR_IN_GEM'] || 'true'
68
+ sh("INCLUDE_JAR_IN_GEM=#{include_jar} gem build -V '#{gemspec_path}'") do
42
69
  gem_path = built_gem_path.call
43
70
  file_name = File.basename(gem_path)
44
71
  FileUtils.mkdir_p(File.join(base_dir, 'pkg'))
@@ -58,7 +85,6 @@ end
58
85
 
59
86
  desc "Releasing AR-JDBC gems (use NOOP=true to disable gem pushing)"
60
87
  task 'release:do' do
61
- ENV['RELEASE'] = 'true' # so that .gemspec is built with adapter_java.jar
62
88
  Rake::Task['build'].invoke
63
89
  # Rake::Task['build:adapters'].invoke
64
90
 
@@ -159,7 +185,7 @@ if defined? JRUBY_VERSION
159
185
  #directory classes = 'pkg/classes'; CLEAN << classes
160
186
 
161
187
  file jar_file => FileList[ 'src/java/**/*.java' ] do
162
- source = target = '1.7'; debug = true
188
+ source = target = '1.8'; debug = true
163
189
 
164
190
  get_driver_jars_local = lambda do |*args|
165
191
  driver_deps = args.empty? ? [ :Postgres, :MySQL ] : args
@@ -257,7 +283,7 @@ if defined? JRUBY_VERSION
257
283
  begin
258
284
  require 'arjdbc/version'
259
285
  rescue LoadError
260
- path = File.expand_path('../lib', File.dirname(__FILE__))
286
+ path = File.expand_path('lib', File.dirname(__FILE__))
261
287
  unless $LOAD_PATH.include?(path)
262
288
  $LOAD_PATH << path; retry
263
289
  end
@@ -297,7 +323,7 @@ if defined? JRUBY_VERSION
297
323
  # class_files.gsub!('$', '\$') unless windows?
298
324
  # args = class_files.map { |path| [ "-C #{classes_dir}", path ] }.flatten
299
325
 
300
- if ENV['RELEASE'] == 'true'; require 'tempfile'
326
+ if ENV['INCLUDE_JAR_IN_GEM'] == 'true'; require 'tempfile'
301
327
  manifest = "Built-Time: #{Time.now.utc.strftime('%Y-%m-%d %H:%M:%S')}\n"
302
328
  manifest += "Built-JRuby: #{JRUBY_VERSION}\n"
303
329
  manifest += "Specification-Title: ActiveRecord-JDBC\n"