jubilee 1.0.2 → 1.1.0.rc1

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 (128) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -1
  3. data/CHANGELOG +17 -0
  4. data/Gemfile +19 -1
  5. data/Gemfile.lock +189 -31
  6. data/LICENSE.txt +20 -0
  7. data/README.md +44 -5
  8. data/ROADMAP +5 -0
  9. data/Rakefile +6 -5
  10. data/examples/chatapp/Gemfile +2 -1
  11. data/examples/chatapp/Gemfile.lock +8 -6
  12. data/examples/chatapp/README.md +5 -2
  13. data/examples/chatapp/app.rb +24 -0
  14. data/examples/chatapp/public/assets/javascripts/application.js +59 -6
  15. data/examples/chatapp/public/assets/stylesheets/application.css +25 -0
  16. data/examples/jubilee.conf.rb +0 -3
  17. data/jars/{hazelcast-2.6.jar → hazelcast-2.6.3.jar} +0 -0
  18. data/jars/{netty-all-4.0.4.Final.jar → netty-all-4.0.13.Final.jar} +0 -0
  19. data/jars/vertx-core-2.1M3-SNAPSHOT.jar +0 -0
  20. data/jars/vertx-hazelcast-2.1M3-SNAPSHOT.jar +0 -0
  21. data/java/src/jubilee/JubileeService.java +7 -7
  22. data/java/src/org/jruby/jubilee/Const.java +10 -35
  23. data/java/src/org/jruby/jubilee/RackApplication.java +77 -46
  24. data/java/src/org/jruby/jubilee/RackResponse.java +1 -3
  25. data/java/src/org/jruby/jubilee/RubyHttpServerResponse.java +88 -0
  26. data/java/src/org/jruby/jubilee/{Server.java → RubyServer.java} +17 -14
  27. data/java/src/org/jruby/jubilee/impl/RackEnvironment.java +157 -0
  28. data/java/src/org/jruby/jubilee/impl/RackEnvironmentHash.java +449 -0
  29. data/java/src/org/jruby/jubilee/impl/RubyIORackInput.java +5 -5
  30. data/java/src/org/jruby/jubilee/impl/{NullIO.java → RubyNullIO.java} +5 -9
  31. data/java/src/org/jruby/jubilee/utils/RubyHelper.java +37 -0
  32. data/jubilee.gemspec +101 -14
  33. data/lib/jubilee.rb +4 -3
  34. data/lib/jubilee/cli.rb +2 -1
  35. data/lib/jubilee/configuration.rb +4 -9
  36. data/lib/jubilee/const.rb +2 -2
  37. data/lib/jubilee/jubilee.jar +0 -0
  38. data/lib/jubilee/response.rb +9 -8
  39. data/lib/jubilee/server.rb +1 -1
  40. data/lib/jubilee/version.rb +8 -1
  41. data/lib/rack/chunked.rb +38 -0
  42. data/spec/apps/rack/basic/config.ru +50 -0
  43. data/spec/apps/rails4/basic/.gitignore +16 -0
  44. data/spec/apps/rails4/basic/Gemfile +41 -0
  45. data/spec/apps/rails4/basic/Gemfile.lock +127 -0
  46. data/spec/apps/rails4/basic/README.rdoc +28 -0
  47. data/spec/apps/rails4/basic/Rakefile +6 -0
  48. data/spec/apps/rails4/basic/app/assets/images/.keep +0 -0
  49. data/spec/apps/rails4/basic/app/assets/images/rails.png +0 -0
  50. data/spec/apps/rails4/basic/app/assets/javascripts/application.js +16 -0
  51. data/spec/apps/rails4/basic/app/assets/stylesheets/application.css +13 -0
  52. data/spec/apps/rails4/basic/app/controllers/application_controller.rb +5 -0
  53. data/spec/apps/rails4/basic/app/controllers/concerns/.keep +0 -0
  54. data/spec/apps/rails4/basic/app/controllers/reloader_controller.rb +11 -0
  55. data/spec/apps/rails4/basic/app/controllers/reloader_controller.rb.erb +11 -0
  56. data/spec/apps/rails4/basic/app/controllers/root_controller.rb +14 -0
  57. data/spec/apps/rails4/basic/app/helpers/application_helper.rb +2 -0
  58. data/spec/apps/rails4/basic/app/mailers/.keep +0 -0
  59. data/spec/apps/rails4/basic/app/models/.keep +0 -0
  60. data/spec/apps/rails4/basic/app/models/concerns/.keep +0 -0
  61. data/spec/apps/rails4/basic/app/views/layouts/application.html.erb +14 -0
  62. data/spec/apps/rails4/basic/app/views/reloader/index.html.erb +1 -0
  63. data/spec/apps/rails4/basic/app/views/root/index.html.erb +8 -0
  64. data/spec/apps/rails4/basic/app/views/root/streaming.html.erb +6 -0
  65. data/spec/apps/rails4/basic/bin/bundle +3 -0
  66. data/spec/apps/rails4/basic/bin/rails +4 -0
  67. data/spec/apps/rails4/basic/bin/rake +4 -0
  68. data/spec/apps/rails4/basic/config.ru +4 -0
  69. data/spec/apps/rails4/basic/config/application.rb +23 -0
  70. data/spec/apps/rails4/basic/config/boot.rb +4 -0
  71. data/spec/apps/rails4/basic/config/database.yml +20 -0
  72. data/spec/apps/rails4/basic/config/environment.rb +5 -0
  73. data/spec/apps/rails4/basic/config/environments/development.rb +29 -0
  74. data/spec/apps/rails4/basic/config/environments/production.rb +80 -0
  75. data/spec/apps/rails4/basic/config/environments/test.rb +36 -0
  76. data/spec/apps/rails4/basic/config/initializers/backtrace_silencers.rb +7 -0
  77. data/spec/apps/rails4/basic/config/initializers/filter_parameter_logging.rb +4 -0
  78. data/spec/apps/rails4/basic/config/initializers/inflections.rb +16 -0
  79. data/spec/apps/rails4/basic/config/initializers/mime_types.rb +5 -0
  80. data/spec/apps/rails4/basic/config/initializers/secret_token.rb +12 -0
  81. data/spec/apps/rails4/basic/config/initializers/session_store.rb +2 -0
  82. data/spec/apps/rails4/basic/config/initializers/wrap_parameters.rb +14 -0
  83. data/spec/apps/rails4/basic/config/locales/en.yml +23 -0
  84. data/spec/apps/rails4/basic/config/routes.rb +5 -0
  85. data/spec/apps/rails4/basic/db/seeds.rb +7 -0
  86. data/spec/apps/rails4/basic/lib/assets/.keep +0 -0
  87. data/spec/apps/rails4/basic/lib/tasks/.keep +0 -0
  88. data/spec/apps/rails4/basic/public/404.html +58 -0
  89. data/spec/apps/rails4/basic/public/422.html +58 -0
  90. data/spec/apps/rails4/basic/public/500.html +57 -0
  91. data/spec/apps/rails4/basic/public/favicon.ico +0 -0
  92. data/spec/apps/rails4/basic/public/robots.txt +5 -0
  93. data/spec/apps/rails4/basic/public/some_page.html +7 -0
  94. data/spec/apps/rails4/basic/test/controllers/.keep +0 -0
  95. data/spec/apps/rails4/basic/test/fixtures/.keep +0 -0
  96. data/spec/apps/rails4/basic/test/helpers/.keep +0 -0
  97. data/spec/apps/rails4/basic/test/integration/.keep +0 -0
  98. data/spec/apps/rails4/basic/test/mailers/.keep +0 -0
  99. data/spec/apps/rails4/basic/test/models/.keep +0 -0
  100. data/spec/apps/rails4/basic/test/test_helper.rb +15 -0
  101. data/spec/apps/rails4/basic/vendor/assets/javascripts/.keep +0 -0
  102. data/spec/apps/rails4/basic/vendor/assets/stylesheets/.keep +0 -0
  103. data/spec/apps/sinatra/basic/Gemfile +4 -0
  104. data/spec/apps/sinatra/basic/Gemfile.lock +20 -0
  105. data/spec/apps/sinatra/basic/basic.rb +27 -0
  106. data/spec/apps/sinatra/basic/config.ru +7 -0
  107. data/spec/apps/sinatra/basic/public/some_page.html +7 -0
  108. data/spec/apps/sinatra/basic/views/index.erb +4 -0
  109. data/spec/apps/sinatra/basic/views/posted.haml +2 -0
  110. data/spec/apps/sinatra/basic/views/poster.haml +4 -0
  111. data/spec/apps/sinatra/basic/views/request_mapping.haml +4 -0
  112. data/spec/integration/basic_rack_spec.rb +89 -0
  113. data/spec/integration/basic_rails4_spec.rb +64 -0
  114. data/spec/integration/basic_sinatra_spec.rb +80 -0
  115. data/spec/spec_helper.rb +13 -0
  116. data/test/jubilee/test_cli.rb +1 -1
  117. data/test/jubilee/test_configuration.rb +18 -1
  118. data/test/jubilee/test_rack_server.rb +7 -7
  119. data/test/jubilee/test_response.rb +35 -36
  120. data/test/jubilee/test_server.rb +1 -1
  121. data/test/jubilee/test_upload.rb +14 -11
  122. data/test/test_helper.rb +1 -0
  123. metadata +97 -18
  124. data/VERSION +0 -1
  125. data/jars/vertx-core-2.1.0-SNAPSHOT.jar +0 -0
  126. data/java/src/org/jruby/jubilee/RackErrors.java +0 -44
  127. data/java/src/org/jruby/jubilee/impl/DefaultRackEnvironment.java +0 -99
  128. data/java/src/org/jruby/jubilee/impl/RubyIORackErrors.java +0 -68
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0de9f390fff46d6cb5b4832844c9fe074cc87d37
4
- data.tar.gz: 5f2d5999bcc30481730b05668e5f31d166c3e307
3
+ metadata.gz: 0f1455eb032eecbf34eb4c64b1f7c2275bf6a712
4
+ data.tar.gz: f69992911c71786735f250f043720d56fc8ea825
5
5
  SHA512:
6
- metadata.gz: 331f573a3527116879286ec82ce1c32d82d5372c95c9119f4b8f6454354440d3a4a1aa914201dbe991eee4fdfa1b4d2791e251fb4c587dad64cf62f667db3a64
7
- data.tar.gz: 5a07dc400ba26f1d213128261226aff3b6127c0c145e50f9b5f1b23aacd11b959e7144d7e565cf59a4cd02e40b47b51468b8160721c99cb57ad9ca2caea12809
6
+ metadata.gz: ff9925abef232206f19275b9e04f4438c5ce568b74cb4962acd5b368c6f798d514bd8d37cdfdae961504ec82b69d8cbfe19fae256fed5a65e7283287a954915c
7
+ data.tar.gz: c6b4adf8cd09c53d3cf79c8d4cef04a2c420ee81f10b0ef7d106029a9d838a70d6275f0329b0fe4372b5a2f3ee20b7e922f44f9fc81a33dfc687e707782bfe3c
data/.travis.yml CHANGED
@@ -2,4 +2,4 @@ language: ruby
2
2
  rvm:
3
3
  - jruby-19mode # JRuby in 1.9 mode
4
4
 
5
- script: "rake test"
5
+ script: "bundle exec rake test"
data/CHANGELOG CHANGED
@@ -1,3 +1,20 @@
1
+ Release 1.0.2
2
+ =============
3
+
4
+ fix RACK_ENV not set when using the jubilee command
5
+
6
+ Release 1.0.1
7
+ =============
8
+
9
+ Fix string status code caused crash on rails 4
10
+
11
+ Release 1.0.0
12
+ =============
13
+
14
+ Add full suport of event bus, shared data and clustering.
15
+
16
+ Documents, chat app
17
+
1
18
  Release 0.4.0
2
19
  =============
3
20
 
data/Gemfile CHANGED
@@ -5,7 +5,7 @@ gem 'rack', '>= 1.4.1'
5
5
  gem 'spoon', '~> 0.0.4'
6
6
 
7
7
  group :development do
8
- gem 'jeweler'
8
+ gem 'jeweler', '~> 1.8.7'
9
9
  end
10
10
 
11
11
  group :test do
@@ -14,4 +14,22 @@ group :test do
14
14
  gem 'multipart-post'
15
15
  gem 'pry'
16
16
  gem 'rcov'
17
+ gem 'rspec'
18
+ gem 'capybara'
19
+ gem 'poltergeist'
20
+
21
+ # sinatra spec
22
+ gem 'sinatra'
23
+ gem 'haml'
24
+ # rails4 spec
25
+ gem 'rails', '~> 4.0.0'
26
+ gem 'activerecord-jdbc-adapter'
27
+ gem 'jdbc-sqlite3'
28
+ gem 'sass-rails', '~> 4.0.0'
29
+ gem 'uglifier', '>= 1.3.0'
30
+ gem 'coffee-rails', '~> 4.0.0'
31
+ gem 'therubyrhino'
32
+ gem 'jquery-rails', '>= 3.0'
33
+ gem 'turbolinks'
34
+ gem 'jbuilder', '~> 1.2'
17
35
  end
data/Gemfile.lock CHANGED
@@ -1,13 +1,62 @@
1
1
  GEM
2
2
  remote: https://rubygems.org/
3
3
  specs:
4
+ actionmailer (4.0.2)
5
+ actionpack (= 4.0.2)
6
+ mail (~> 2.5.4)
7
+ actionpack (4.0.2)
8
+ activesupport (= 4.0.2)
9
+ builder (~> 3.1.0)
10
+ erubis (~> 2.7.0)
11
+ rack (~> 1.5.2)
12
+ rack-test (~> 0.6.2)
13
+ activemodel (4.0.2)
14
+ activesupport (= 4.0.2)
15
+ builder (~> 3.1.0)
16
+ activerecord (4.0.2)
17
+ activemodel (= 4.0.2)
18
+ activerecord-deprecated_finders (~> 1.0.2)
19
+ activesupport (= 4.0.2)
20
+ arel (~> 4.0.0)
21
+ activerecord-deprecated_finders (1.0.3)
22
+ activerecord-jdbc-adapter (1.3.4)
23
+ activerecord (>= 2.2)
24
+ activesupport (4.0.2)
25
+ i18n (~> 0.6, >= 0.6.4)
26
+ minitest (~> 4.2)
27
+ multi_json (~> 1.3)
28
+ thread_safe (~> 0.1)
29
+ tzinfo (~> 0.3.37)
4
30
  addressable (2.3.5)
5
- builder (3.2.2)
6
- coderay (1.0.8)
7
- faraday (0.8.7)
8
- multipart-post (~> 1.1)
9
- ffi (1.9.0)
10
- ffi (1.9.0-java)
31
+ arel (4.0.1)
32
+ atomic (1.1.14)
33
+ atomic (1.1.14-java)
34
+ builder (3.1.4)
35
+ capybara (2.2.0)
36
+ mime-types (>= 1.16)
37
+ nokogiri (>= 1.3.3)
38
+ rack (>= 1.0.0)
39
+ rack-test (>= 0.5.4)
40
+ xpath (~> 2.0)
41
+ celluloid (0.15.2)
42
+ timers (~> 1.1.0)
43
+ cliver (0.3.2)
44
+ coderay (1.1.0)
45
+ coffee-rails (4.0.1)
46
+ coffee-script (>= 2.2.0)
47
+ railties (>= 4.0.0, < 5.0)
48
+ coffee-script (2.2.0)
49
+ coffee-script-source
50
+ execjs
51
+ coffee-script-source (1.6.3)
52
+ diff-lcs (1.2.5)
53
+ erubis (2.7.0)
54
+ execjs (2.0.2)
55
+ faraday (0.8.8)
56
+ multipart-post (~> 1.2.0)
57
+ ffi (1.9.3)
58
+ ffi (1.9.3-java)
59
+ formatador (0.2.4)
11
60
  git (1.2.6)
12
61
  github_api (0.10.1)
13
62
  addressable
@@ -16,17 +65,26 @@ GEM
16
65
  multi_json (~> 1.4)
17
66
  nokogiri (~> 1.5.2)
18
67
  oauth2
19
- guard (1.5.4)
20
- listen (>= 0.4.2)
21
- lumberjack (>= 1.0.2)
22
- pry (>= 0.9.10)
23
- thor (>= 0.14.6)
68
+ guard (2.2.5)
69
+ formatador (>= 0.2.4)
70
+ listen (~> 2.1)
71
+ lumberjack (~> 1.0)
72
+ pry (>= 0.9.12)
73
+ thor (>= 0.18.1)
24
74
  guard-minitest (0.5.0)
25
75
  guard (>= 0.4)
76
+ haml (4.0.4)
77
+ tilt
26
78
  hashie (2.0.5)
27
- highline (1.6.19)
79
+ highline (1.6.20)
80
+ hike (1.2.3)
28
81
  httpauth (0.2.0)
29
- jeweler (1.8.7)
82
+ i18n (0.6.9)
83
+ jbuilder (1.5.3)
84
+ activesupport (>= 3.0.0)
85
+ multi_json (>= 1.2.0)
86
+ jdbc-sqlite3 (3.7.2.1)
87
+ jeweler (1.8.8)
30
88
  builder
31
89
  bundler (~> 1.0)
32
90
  git (>= 1.2.5)
@@ -35,15 +93,26 @@ GEM
35
93
  nokogiri (= 1.5.10)
36
94
  rake
37
95
  rdoc
38
- json (1.8.0-java)
96
+ jquery-rails (3.0.4)
97
+ railties (>= 3.0, < 5.0)
98
+ thor (>= 0.14, < 2.0)
99
+ json (1.8.1-java)
39
100
  jwt (0.1.8)
40
101
  multi_json (>= 1.5)
41
- listen (0.5.3)
42
- lumberjack (1.0.2)
43
- method_source (0.8.1)
44
- multi_json (1.8.0)
102
+ listen (2.4.0)
103
+ celluloid (>= 0.15.2)
104
+ rb-fsevent (>= 0.9.3)
105
+ rb-inotify (>= 0.9)
106
+ lumberjack (1.0.4)
107
+ mail (2.5.4)
108
+ mime-types (~> 1.16)
109
+ treetop (~> 1.4.8)
110
+ method_source (0.8.2)
111
+ mime-types (1.25.1)
112
+ minitest (4.7.5)
113
+ multi_json (1.8.2)
45
114
  multi_xml (0.5.5)
46
- multipart-post (1.1.5)
115
+ multipart-post (1.2.0)
47
116
  nokogiri (1.5.10-java)
48
117
  oauth2 (0.9.2)
49
118
  faraday (~> 0.8)
@@ -52,35 +121,124 @@ GEM
52
121
  multi_json (~> 1.0)
53
122
  multi_xml (~> 0.5)
54
123
  rack (~> 1.2)
55
- pry (0.9.10)
56
- coderay (~> 1.0.5)
124
+ poltergeist (1.5.0)
125
+ capybara (~> 2.1)
126
+ cliver (~> 0.3.1)
127
+ multi_json (~> 1.0)
128
+ websocket-driver (>= 0.2.0)
129
+ polyglot (0.3.3)
130
+ pry (0.9.12.4)
131
+ coderay (~> 1.0)
57
132
  method_source (~> 0.8)
58
- slop (~> 3.3.1)
59
- pry (0.9.10-java)
60
- coderay (~> 1.0.5)
133
+ slop (~> 3.4)
134
+ pry (0.9.12.4-java)
135
+ coderay (~> 1.0)
61
136
  method_source (~> 0.8)
62
- slop (~> 3.3.1)
137
+ slop (~> 3.4)
63
138
  spoon (~> 0.0)
64
- rack (1.4.5)
65
- rake (10.1.0)
139
+ rack (1.5.2)
140
+ rack-protection (1.5.1)
141
+ rack
142
+ rack-test (0.6.2)
143
+ rack (>= 1.0)
144
+ rails (4.0.2)
145
+ actionmailer (= 4.0.2)
146
+ actionpack (= 4.0.2)
147
+ activerecord (= 4.0.2)
148
+ activesupport (= 4.0.2)
149
+ bundler (>= 1.3.0, < 2.0)
150
+ railties (= 4.0.2)
151
+ sprockets-rails (~> 2.0.0)
152
+ railties (4.0.2)
153
+ actionpack (= 4.0.2)
154
+ activesupport (= 4.0.2)
155
+ rake (>= 0.8.7)
156
+ thor (>= 0.18.1, < 2.0)
157
+ rake (10.1.1)
158
+ rb-fsevent (0.9.4)
159
+ rb-inotify (0.9.3)
160
+ ffi (>= 0.5.0)
66
161
  rcov (0.9.11)
67
162
  rcov (0.9.11-java)
68
- rdoc (4.0.1)
163
+ rdoc (4.1.0)
69
164
  json (~> 1.4)
70
- slop (3.3.3)
165
+ rspec (2.14.1)
166
+ rspec-core (~> 2.14.0)
167
+ rspec-expectations (~> 2.14.0)
168
+ rspec-mocks (~> 2.14.0)
169
+ rspec-core (2.14.7)
170
+ rspec-expectations (2.14.4)
171
+ diff-lcs (>= 1.1.3, < 2.0)
172
+ rspec-mocks (2.14.4)
173
+ sass (3.2.13)
174
+ sass-rails (4.0.1)
175
+ railties (>= 4.0.0, < 5.0)
176
+ sass (>= 3.1.10)
177
+ sprockets-rails (~> 2.0.0)
178
+ sinatra (1.4.4)
179
+ rack (~> 1.4)
180
+ rack-protection (~> 1.4)
181
+ tilt (~> 1.3, >= 1.3.4)
182
+ slop (3.4.7)
71
183
  spoon (0.0.4)
72
184
  ffi
73
- thor (0.16.0)
185
+ sprockets (2.10.1)
186
+ hike (~> 1.2)
187
+ multi_json (~> 1.0)
188
+ rack (~> 1.0)
189
+ tilt (~> 1.1, != 1.3.0)
190
+ sprockets-rails (2.0.1)
191
+ actionpack (>= 3.0)
192
+ activesupport (>= 3.0)
193
+ sprockets (~> 2.8)
194
+ therubyrhino (2.0.2)
195
+ therubyrhino_jar (>= 1.7.3)
196
+ therubyrhino_jar (1.7.4)
197
+ thor (0.18.1)
198
+ thread_safe (0.1.3)
199
+ atomic
200
+ thread_safe (0.1.3-java)
201
+ atomic
202
+ tilt (1.4.1)
203
+ timers (1.1.0)
204
+ treetop (1.4.15)
205
+ polyglot
206
+ polyglot (>= 0.3.1)
207
+ turbolinks (2.1.0)
208
+ coffee-rails
209
+ tzinfo (0.3.38)
210
+ uglifier (2.4.0)
211
+ execjs (>= 0.3.0)
212
+ json (>= 1.8.0)
213
+ websocket-driver (0.3.2)
214
+ websocket-driver (0.3.2-java)
215
+ xpath (2.0.0)
216
+ nokogiri (~> 1.3)
74
217
 
75
218
  PLATFORMS
76
219
  java
77
220
 
78
221
  DEPENDENCIES
222
+ activerecord-jdbc-adapter
223
+ capybara
224
+ coffee-rails (~> 4.0.0)
79
225
  guard
80
226
  guard-minitest
81
- jeweler
227
+ haml
228
+ jbuilder (~> 1.2)
229
+ jdbc-sqlite3
230
+ jeweler (~> 1.8.7)
231
+ jquery-rails (>= 3.0)
82
232
  multipart-post
233
+ poltergeist
83
234
  pry
84
235
  rack (>= 1.4.1)
236
+ rails (~> 4.0.0)
85
237
  rcov
238
+ rspec
239
+ sass-rails (~> 4.0.0)
240
+ sinatra
86
241
  spoon (~> 0.0.4)
242
+ therubyrhino
243
+ turbolinks
244
+ uglifier (>= 1.3.0)
data/LICENSE.txt ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2012-2014 Isaiah Peng
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md CHANGED
@@ -1,13 +1,14 @@
1
1
  [![Build Status](https://travis-ci.org/isaiah/jubilee.png?branch=master)](https://travis-ci.org/isaiah/jubilee)
2
2
 
3
- Jubilee
3
+ Jubilee server
4
4
  =========
5
5
 
6
6
  > "We need a web framework for Vertx.", you said.
7
7
 
8
8
  > "But why not use Vertx in your Rails applications, it's the most productive web framework ever created."
9
9
 
10
- The Answer is Jubilee, a rack server with [vertx 2.0](http://vertx.io) awesomeness builtin.
10
+ The Answer is Jubilee, a rack server with [vertx 2.0](http://vertx.io) awesomeness builtin. Check out the
11
+ [demo](http://192.241.201.68:8080/) [application](https://github.com/isaiah/jubilee/tree/master/examples/chatapp).
11
12
 
12
13
  Why another rack server?
13
14
  ------------------------
@@ -33,7 +34,7 @@ Installation
33
34
 
34
35
  $ jruby -S gem install jubilee
35
36
 
36
- Jubilee requires JRuby 1.7.0 or later, and JDK 7+
37
+ Jubilee requires JRuby 1.7.5 or later, and JDK 7+
37
38
 
38
39
  Get started
39
40
  -----------
@@ -44,7 +45,8 @@ Get started
44
45
  Setup
45
46
  -----
46
47
 
47
- If you use bundler, you might want to add `jubilee` to your Gemfile
48
+ If you use bundler, you might want to add `jubilee` to your Gemfile,
49
+ this is required if you want use rails http stream
48
50
 
49
51
  $ jubilee
50
52
 
@@ -92,7 +94,44 @@ eb.send("test", "hello, world");
92
94
  For more advanced examples, checkout the
93
95
  [chatapp](https://github.com/isaiah/jubilee/tree/master/examples/chatapp).
94
96
 
97
+ Performance Tuning
98
+ =================
99
+
100
+ Improving connection time
101
+ -------------------------
102
+
103
+ If you're creating a lot of connections to a Jubilee(Vert.x) server in a short
104
+ period of time, e.g. benchmarking with tools like [wrk](https://github.com/wg/wrk),
105
+ you may need to tweak some settings in order to avoid the TCP accept queue
106
+ getting full. This can result in connections being refused or packets being
107
+ dropped during the handshake which can then cause the client to retry.
108
+
109
+ A classic symptom of this is if you see long connection times just over
110
+ 3000ms at your client.
111
+
112
+ How to tune this is operating system specific but in Linux you need to
113
+ increase a couple of settings in the TCP / Net config (10000 is an
114
+ arbitrarily large number)
115
+
116
+ ```shell
117
+ sudo sysctl -w net.core.somaxconn=10000
118
+ sudo sysctl -w net.ipv4.tcp_max_syn_backlog=10000
119
+ ```
120
+
121
+ For other operating systems, please consult your operating system
122
+ documentation.
123
+
95
124
  License
96
125
  --------
97
126
 
98
- The same as JRuby and vertx
127
+ See [LICENSE.txt](https://github.com/isaiah/jubilee/blob/master/LICENSE.txt)
128
+
129
+ Acknowledgment
130
+ --------------
131
+
132
+ YourKit is kindly supporting Jubilee Server with its full-featured Java Profiler.
133
+ YourKit, LLC is the creator of innovative and intelligent tools for profiling
134
+ Java and .NET applications. Take a look at YourKit's leading software products:
135
+ [YourKit Java
136
+ Profiler](http://www.yourkit.com/java/profiler/index.jsp) and
137
+ [YourKit .NET Profiler](http://www.yourkit.com/.net/profiler/index.jsp).
data/ROADMAP ADDED
@@ -0,0 +1,5 @@
1
+ Hijack support
2
+
3
+ Scale HTTP Server, create multiple instances (bind to different ports or the same one?)
4
+
5
+ Load multiple ruby runtimes