trinidad_dbpool 0.5.0 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 4f93eef63246340486ea0ecca09eb0d944cc9ca7
4
+ data.tar.gz: 3ec1c314d6ea8046125d506cfa364629248fffa6
5
+ SHA512:
6
+ metadata.gz: 846038f43082dbcb7e5f190921227284869a078062ecbe4185ca81dc3d1b20d9074404d42f9e9d180fa6193b1bfe7486f8171c0521b3b8a40bc5b457b40b6573
7
+ data.tar.gz: d334c5d8ecd37cf8b9b8ae7ef910b7eb86525e63d55051ca8b855988a1516cd78d19f3661cd24e1c03a9822fe160bcb79c814e23feb5b96e6c941b044acb1e7a
data/History.txt CHANGED
@@ -1,3 +1,11 @@
1
+ == 0.7.0 (2013-12-11)
2
+
3
+ **NOTE:** tomcat-dbcp.jar contains patched Commons-DBCP pool implementation !
4
+ We're now switching to tomcat-jdbc.jar (which we kind of assumed we're using).
5
+
6
+ * packaged in tomcat-jdbc.jar (from 7.0.47) bundle version 1.1.0.1
7
+ * updated tomcat-dbcp.jar (keeping it for a while for compatibility)
8
+
1
9
  == 0.5.0 (2013-06-28)
2
10
 
3
11
  * updated tomcat-dbcp.jar to 7.0.41 ... due recent fixes in 7.0.39 / 7.0.40 :
data/README.md CHANGED
@@ -29,23 +29,27 @@ http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html
29
29
  web_apps:
30
30
  default:
31
31
  extensions:
32
- mysql_dbpool: # EXTENSION NAME AS KEY
33
- jndi: 'jdbc/TestDB' # name (linked with database.yml)
34
- url: 'localhost:3306/javatest' # database URL (or full jdbc: URL)
35
- username: 'root' # database username
36
- password: 'root' # database password
37
- maxActive: 100 # max nodes actives
38
- maxIdle: 30 # max nodes idles
39
- maxWait: 10000 # max nodes waiting
32
+ mysql_dbpool: # EXTENSION NAME AS KEY
33
+ jndi: 'jdbc/MySampleDB' # name (linked with database.yml)
34
+ url: 'localhost:3306/sample' # database URL (or full jdbc: URL)
35
+ username: root
36
+ password: root
37
+ maxActive: 100 # maximum number of connections managed by the pool
38
+ initialSize: 10 # initial number of connections created in the pool
39
+ maxWait: 10000 # ms the pool waits for a connection to be returned
40
40
  ```
41
41
 
42
42
  **jndi**, **url** are mandatory (as well **username** and **password** if your
43
43
  database server + driver requires authentication), while other supported
44
- configuration options might be found here in Tomcat's "datasource" how-to:
44
+ configuration options might be found here in Tomcat's JDBC pool documentation :
45
45
 
46
- http://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html
46
+ http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html#Common_Attributes
47
47
 
48
- http://commons.apache.org/dbcp/configuration.html
48
+ **NOTE:** starting version 0.7 we switched to using Tomcat's JDBC pool which
49
+ is simpler and more performant pool designed specifically for Tomcat/Trinidad.
50
+
51
+ If you insist on using [DBCP](http://commons.apache.org/dbcp/configuration.html)
52
+ set the (deprecated) *pool: dbcp* option along side your pool configuration ...
49
53
 
50
54
  If you happen to be using *SQLite* on production you'll need an absolute path :
51
55
 
@@ -60,11 +64,11 @@ If you happen to be using *SQLite* on production you'll need an absolute path :
60
64
 
61
65
  ```yml
62
66
  production:
63
- adapter: jdbc # it will detect the adapter spec e.g. `ArJdbc::MySQL`
64
- jndi: java:/comp/env/jdbc/TestDB
67
+ adapter: mysql
68
+ jndi: java:/comp/env/jdbc/MySampleDB
65
69
  # (Java) JDBC driver class name is detected for built-in adapters that
66
70
  # activerecord-jdbc-adapter supports, specify for a "generic" adapter
67
- #driver: com.mysql.jdbc.Driver
71
+ # driver: com.mysql.jdbc.Driver
68
72
  ```
69
73
 
70
74
  do not forget to delete **pool** setup part since there's no need for it ...
data/Rakefile CHANGED
@@ -26,7 +26,6 @@ all_gems = %W{
26
26
  postgresql_dbpool_extension
27
27
  sqlite_dbpool_extension
28
28
  mssql_dbpool_extension
29
- oracle_dbpool_extension
30
29
  }.map { |gem| "trinidad_#{gem}" }
31
30
 
32
31
  all_gems.each do |gem_name|
@@ -2,22 +2,35 @@ module Trinidad
2
2
  module Extensions
3
3
  class DbpoolWebAppExtension < WebAppExtension
4
4
 
5
- def configure(tomcat, app_context)
5
+ def configure(tomcat, context)
6
6
  case @options
7
7
  when Hash
8
- [create_resource(tomcat, app_context, @options)]
8
+ [create_resource(tomcat, context, @options)]
9
9
  when Array
10
- @options.map { |opts| create_resource tomcat, app_context, opts }
10
+ @options.map { |opts| create_resource tomcat, context, opts }
11
11
  end
12
12
  end
13
13
 
14
14
  protected
15
15
 
16
- def create_resource tomcat, app_context, options
16
+ def create_resource tomcat, context, options
17
17
  jndi, url = options.delete(:jndi), options.delete(:url)
18
18
  url = protocol + url unless %r{^#{protocol}} =~ url
19
19
  options[:url] = url
20
20
 
21
+ resource_factory = options.key?(:factory) ? options.delete(:factory) :
22
+ 'org.apache.tomcat.jdbc.pool.DataSourceFactory'
23
+ if pool = options.delete(:pool) # pool: dbcp (backwards compatibility)
24
+ begin
25
+ load File.expand_path("../../../trinidad-libs/tomcat-#{pool}.jar", __FILE__)
26
+ resource_factory = nil
27
+ rescue LoadError
28
+ context.logger.warn "The `pool: #{pool}` option is not supported, please remove it"
29
+ else
30
+ context.logger.info "Using deprecated `pool: #{pool}` configuration option, consider removing it"
31
+ end
32
+ end
33
+
21
34
  load_driver
22
35
 
23
36
  driver_name = options.delete(:driver) || options.delete(:driverName) ||
@@ -31,16 +44,16 @@ module Trinidad
31
44
  # maxActive="100" maxIdle="30" maxWait="10000"
32
45
  # username="root" password="secret" />
33
46
  resource = Trinidad::Tomcat::ContextResource.new
34
- resource.set_auth(options.delete(:auth)) if options.has_key?(:auth)
35
- resource.set_description(options.delete(:description)) if options.has_key?(:description)
47
+ resource.set_auth(options.delete(:auth)) if options.key?(:auth)
48
+ resource.set_description(options.delete(:description)) if options.key?(:description)
36
49
  resource.set_name(jndi)
37
- resource.set_type('javax.sql.DataSource')
38
-
39
- options.each { |key, value| resource.set_property(key.to_s, value.to_s) }
50
+ resource.set_type(options.delete(:type) || 'javax.sql.DataSource')
51
+ resource.set_property('factory', resource_factory) if resource_factory
40
52
  resource.set_property('driverClassName', driver_name)
53
+ options.each { |key, value| resource.set_property(key.to_s, value.to_s) }
41
54
 
42
- app_context.naming_resources.add_resource(resource)
43
- app_context.naming_resources = resource.naming_resources
55
+ context.naming_resources.add_resource(resource)
56
+ context.naming_resources = resource.naming_resources
44
57
 
45
58
  resource
46
59
  end
@@ -49,4 +62,4 @@ module Trinidad
49
62
 
50
63
  end
51
64
  end
52
- end
65
+ end
@@ -2,6 +2,6 @@ require 'java'
2
2
 
3
3
  require 'trinidad'
4
4
  require 'trinidad/jars'
5
- load File.expand_path('../../trinidad-libs/tomcat-dbcp.jar', __FILE__)
5
+ load File.expand_path('../../trinidad-libs/tomcat-jdbc.jar', __FILE__)
6
6
 
7
7
  require 'trinidad_dbpool/webapp_extension'
Binary file
Binary file
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trinidad_dbpool
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
5
- prerelease:
4
+ version: 0.7.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - David Calavera
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-06-28 00:00:00.000000000 Z
11
+ date: 2013-12-11 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: trinidad_jars
@@ -18,29 +17,25 @@ dependencies:
18
17
  - - '>='
19
18
  - !ruby/object:Gem::Version
20
19
  version: 1.2.4
21
- none: false
22
20
  requirement: !ruby/object:Gem::Requirement
23
21
  requirements:
24
22
  - - '>='
25
23
  - !ruby/object:Gem::Version
26
24
  version: 1.2.4
27
- none: false
28
25
  prerelease: false
29
26
  type: :runtime
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rspec
32
29
  version_requirements: !ruby/object:Gem::Requirement
33
30
  requirements:
34
- - - '>='
31
+ - - ~>
35
32
  - !ruby/object:Gem::Version
36
33
  version: '2.10'
37
- none: false
38
34
  requirement: !ruby/object:Gem::Requirement
39
35
  requirements:
40
- - - '>='
36
+ - - ~>
41
37
  - !ruby/object:Gem::Version
42
38
  version: '2.10'
43
- none: false
44
39
  prerelease: false
45
40
  type: :development
46
41
  - !ruby/object:Gem::Dependency
@@ -50,13 +45,11 @@ dependencies:
50
45
  - - '>='
51
46
  - !ruby/object:Gem::Version
52
47
  version: '0.10'
53
- none: false
54
48
  requirement: !ruby/object:Gem::Requirement
55
49
  requirements:
56
50
  - - '>='
57
51
  - !ruby/object:Gem::Version
58
52
  version: '0.10'
59
- none: false
60
53
  prerelease: false
61
54
  type: :development
62
55
  description: Addon to support database pools in Trinidad
@@ -72,12 +65,14 @@ files:
72
65
  - lib/trinidad_dbpool.rb
73
66
  - lib/trinidad_dbpool/webapp_extension.rb
74
67
  - trinidad-libs/tomcat-dbcp.jar
68
+ - trinidad-libs/tomcat-jdbc.jar
75
69
  - README.md
76
70
  - History.txt
77
71
  - LICENSE
78
72
  - Rakefile
79
73
  homepage: http://github.com/trinidad/trinidad_dbpool_extension
80
74
  licenses: []
75
+ metadata: {}
81
76
  post_install_message:
82
77
  rdoc_options: []
83
78
  require_paths:
@@ -86,24 +81,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
86
81
  requirements:
87
82
  - - '>='
88
83
  - !ruby/object:Gem::Version
89
- segments:
90
- - 0
91
84
  version: '0'
92
- hash: 2
93
- none: false
94
85
  required_rubygems_version: !ruby/object:Gem::Requirement
95
86
  requirements:
96
87
  - - '>='
97
88
  - !ruby/object:Gem::Version
98
- segments:
99
- - 0
100
89
  version: '0'
101
- hash: 2
102
- none: false
103
90
  requirements: []
104
91
  rubyforge_project:
105
- rubygems_version: 1.8.24
92
+ rubygems_version: 2.1.9
106
93
  signing_key:
107
- specification_version: 3
94
+ specification_version: 4
108
95
  summary: Addon to support database pools in Trinidad
109
96
  test_files: []