jubilee 1.0.2 → 1.1.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
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