activerecord-jdbc-alt-adapter 52.2.3-java → 60.1.0-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 (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"