jubilee 1.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.
- checksums.yaml +7 -0
- data/.ruby-version +1 -0
- data/.travis.yml +5 -0
- data/CHANGELOG +32 -0
- data/Gemfile +35 -0
- data/Gemfile.lock +244 -0
- data/Guardfile +24 -0
- data/KNOWN_ISSUES +6 -0
- data/LICENSE.txt +20 -0
- data/README.md +147 -0
- data/ROADMAP +5 -0
- data/Rakefile +98 -0
- data/bin/jubilee +6 -0
- data/bin/jubilee_d +13 -0
- data/examples/chatapp/Gemfile +5 -0
- data/examples/chatapp/Gemfile.lock +27 -0
- data/examples/chatapp/README.md +17 -0
- data/examples/chatapp/app.rb +57 -0
- data/examples/chatapp/config.ru +3 -0
- data/examples/chatapp/public/assets/javascripts/application.js +67 -0
- data/examples/chatapp/public/assets/javascripts/jquery.js +5 -0
- data/examples/chatapp/public/assets/javascripts/sockjs-0.3.4.min.js +27 -0
- data/examples/chatapp/public/assets/javascripts/vertxbus.js +216 -0
- data/examples/chatapp/public/assets/stylesheets/application.css +29 -0
- data/examples/client/sockjs-0.3.4.min.js +27 -0
- data/examples/client/vertxbus.js +216 -0
- data/examples/jubilee.conf.rb +12 -0
- data/examples/jubilee/keystore.jks +0 -0
- data/examples/jubilee/server-keystore.jks +0 -0
- data/jars/hazelcast-2.6.3.jar +0 -0
- data/jars/jackson-annotations-2.2.2.jar +0 -0
- data/jars/jackson-core-2.2.2.jar +0 -0
- data/jars/jackson-databind-2.2.2.jar +0 -0
- data/jars/netty-all-4.0.13.Final.jar +0 -0
- data/jars/vertx-core-2.1M3-SNAPSHOT.jar +0 -0
- data/jars/vertx-hazelcast-2.1M3-SNAPSHOT.jar +0 -0
- data/java/src/jubilee/JubileeService.java +20 -0
- data/java/src/org/jruby/jubilee/Const.java +32 -0
- data/java/src/org/jruby/jubilee/RackApplication.java +103 -0
- data/java/src/org/jruby/jubilee/RackEnvironment.java +150 -0
- data/java/src/org/jruby/jubilee/RackEnvironmentHash.java +449 -0
- data/java/src/org/jruby/jubilee/RackInput.java +62 -0
- data/java/src/org/jruby/jubilee/RackResponse.java +11 -0
- data/java/src/org/jruby/jubilee/RubyHttpServerResponse.java +88 -0
- data/java/src/org/jruby/jubilee/RubyServer.java +171 -0
- data/java/src/org/jruby/jubilee/deploy/Starter.java +26 -0
- data/java/src/org/jruby/jubilee/impl/RubyIORackInput.java +201 -0
- data/java/src/org/jruby/jubilee/impl/RubyNullIO.java +107 -0
- data/java/src/org/jruby/jubilee/utils/RubyHelper.java +37 -0
- data/java/src/org/jruby/jubilee/vertx/JubileeVertx.java +38 -0
- data/jubilee.gemspec +201 -0
- data/lib/jubilee.rb +17 -0
- data/lib/jubilee/application.rb +13 -0
- data/lib/jubilee/cli.rb +127 -0
- data/lib/jubilee/configuration.rb +177 -0
- data/lib/jubilee/const.rb +40 -0
- data/lib/jubilee/jubilee.jar +0 -0
- data/lib/jubilee/response.rb +69 -0
- data/lib/jubilee/server.rb +12 -0
- data/lib/jubilee/version.rb +10 -0
- data/lib/rack/chunked.rb +38 -0
- data/lib/rack/handler/jubilee.rb +44 -0
- data/lib/vertx.rb +26 -0
- data/lib/vertx/README.md +7 -0
- data/lib/vertx/buffer.rb +251 -0
- data/lib/vertx/event_bus.rb +206 -0
- data/lib/vertx/shared_data.rb +214 -0
- data/spec/apps/rack/basic/config.ru +50 -0
- data/spec/apps/rails4/basic/.gitignore +16 -0
- data/spec/apps/rails4/basic/Gemfile +41 -0
- data/spec/apps/rails4/basic/Gemfile.lock +127 -0
- data/spec/apps/rails4/basic/README.rdoc +28 -0
- data/spec/apps/rails4/basic/Rakefile +6 -0
- data/spec/apps/rails4/basic/app/assets/images/.keep +0 -0
- data/spec/apps/rails4/basic/app/assets/images/rails.png +0 -0
- data/spec/apps/rails4/basic/app/assets/javascripts/application.js +12 -0
- data/spec/apps/rails4/basic/app/assets/stylesheets/application.css +13 -0
- data/spec/apps/rails4/basic/app/controllers/application_controller.rb +5 -0
- data/spec/apps/rails4/basic/app/controllers/concerns/.keep +0 -0
- data/spec/apps/rails4/basic/app/controllers/reloader_controller.rb +11 -0
- data/spec/apps/rails4/basic/app/controllers/reloader_controller.rb.erb +11 -0
- data/spec/apps/rails4/basic/app/controllers/root_controller.rb +14 -0
- data/spec/apps/rails4/basic/app/helpers/application_helper.rb +2 -0
- data/spec/apps/rails4/basic/app/mailers/.keep +0 -0
- data/spec/apps/rails4/basic/app/models/.keep +0 -0
- data/spec/apps/rails4/basic/app/models/concerns/.keep +0 -0
- data/spec/apps/rails4/basic/app/views/layouts/application.html.erb +14 -0
- data/spec/apps/rails4/basic/app/views/reloader/index.html.erb +1 -0
- data/spec/apps/rails4/basic/app/views/root/index.html.erb +8 -0
- data/spec/apps/rails4/basic/app/views/root/streaming.html.erb +6 -0
- data/spec/apps/rails4/basic/bin/bundle +3 -0
- data/spec/apps/rails4/basic/bin/rails +4 -0
- data/spec/apps/rails4/basic/bin/rake +4 -0
- data/spec/apps/rails4/basic/config.ru +4 -0
- data/spec/apps/rails4/basic/config/application.rb +23 -0
- data/spec/apps/rails4/basic/config/boot.rb +4 -0
- data/spec/apps/rails4/basic/config/database.yml +20 -0
- data/spec/apps/rails4/basic/config/environment.rb +5 -0
- data/spec/apps/rails4/basic/config/environments/development.rb +29 -0
- data/spec/apps/rails4/basic/config/environments/production.rb +80 -0
- data/spec/apps/rails4/basic/config/environments/test.rb +36 -0
- data/spec/apps/rails4/basic/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/apps/rails4/basic/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/apps/rails4/basic/config/initializers/inflections.rb +16 -0
- data/spec/apps/rails4/basic/config/initializers/mime_types.rb +5 -0
- data/spec/apps/rails4/basic/config/initializers/secret_token.rb +12 -0
- data/spec/apps/rails4/basic/config/initializers/session_store.rb +2 -0
- data/spec/apps/rails4/basic/config/initializers/wrap_parameters.rb +14 -0
- data/spec/apps/rails4/basic/config/locales/en.yml +23 -0
- data/spec/apps/rails4/basic/config/routes.rb +5 -0
- data/spec/apps/rails4/basic/db/seeds.rb +7 -0
- data/spec/apps/rails4/basic/lib/assets/.keep +0 -0
- data/spec/apps/rails4/basic/lib/tasks/.keep +0 -0
- data/spec/apps/rails4/basic/public/404.html +58 -0
- data/spec/apps/rails4/basic/public/422.html +58 -0
- data/spec/apps/rails4/basic/public/500.html +57 -0
- data/spec/apps/rails4/basic/public/favicon.ico +0 -0
- data/spec/apps/rails4/basic/public/robots.txt +5 -0
- data/spec/apps/rails4/basic/public/some_page.html +7 -0
- data/spec/apps/rails4/basic/test/controllers/.keep +0 -0
- data/spec/apps/rails4/basic/test/fixtures/.keep +0 -0
- data/spec/apps/rails4/basic/test/helpers/.keep +0 -0
- data/spec/apps/rails4/basic/test/integration/.keep +0 -0
- data/spec/apps/rails4/basic/test/mailers/.keep +0 -0
- data/spec/apps/rails4/basic/test/models/.keep +0 -0
- data/spec/apps/rails4/basic/test/test_helper.rb +15 -0
- data/spec/apps/rails4/basic/vendor/assets/javascripts/.keep +0 -0
- data/spec/apps/rails4/basic/vendor/assets/stylesheets/.keep +0 -0
- data/spec/apps/sinatra/basic/Gemfile +4 -0
- data/spec/apps/sinatra/basic/Gemfile.lock +20 -0
- data/spec/apps/sinatra/basic/basic.rb +27 -0
- data/spec/apps/sinatra/basic/config.ru +7 -0
- data/spec/apps/sinatra/basic/public/some_page.html +7 -0
- data/spec/apps/sinatra/basic/views/index.erb +4 -0
- data/spec/apps/sinatra/basic/views/posted.haml +2 -0
- data/spec/apps/sinatra/basic/views/poster.haml +4 -0
- data/spec/apps/sinatra/basic/views/request_mapping.haml +4 -0
- data/spec/integration/basic_rack_spec.rb +89 -0
- data/spec/integration/basic_rails4_spec.rb +64 -0
- data/spec/integration/basic_sinatra_spec.rb +80 -0
- data/spec/spec_helper.rb +13 -0
- data/test/.ruby-version +1 -0
- data/test/config/app.rb +5 -0
- data/test/jubilee/test_cli.rb +11 -0
- data/test/jubilee/test_configuration.rb +31 -0
- data/test/jubilee/test_rack_server.rb +137 -0
- data/test/jubilee/test_response.rb +272 -0
- data/test/jubilee/test_server.rb +72 -0
- data/test/jubilee/test_upload.rb +301 -0
- data/test/sinatra_app/app.rb +31 -0
- data/test/sinatra_app/config.ru +6 -0
- data/test/sinatra_app/public/test.html +10 -0
- data/test/sinatra_app/unicorn.conf.rb +29 -0
- data/test/test_helper.rb +93 -0
- metadata +242 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 962679d3298e64379fab6c97420d891b247fab19
|
|
4
|
+
data.tar.gz: ce3372e3ee9fc1a9b560f3f4e19ab505127848b7
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 2e64bb1443a88d24451f2ff4001c5efcb49d64fe28bdd4c6ea2b998e492b646c7f0c277a836a44fd09b81e497b83ee8a7c983d07bbedd2d36f464bbf9de1afd3
|
|
7
|
+
data.tar.gz: c0b37d5dbc739f36e5345ad19b60cb8f6fa4fed6e9508e4b73685c29cca67f41c2e13ebb5cb44f4db9be6fd4097931c3699760af8fc05bbfbbcaf72554d81935
|
data/.ruby-version
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
jruby-1.7.8
|
data/.travis.yml
ADDED
data/CHANGELOG
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
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
|
+
|
|
18
|
+
Release 0.4.0
|
|
19
|
+
=============
|
|
20
|
+
|
|
21
|
+
Upgrade to vert.x 2.1.0
|
|
22
|
+
|
|
23
|
+
Release 0.2.2
|
|
24
|
+
=============
|
|
25
|
+
|
|
26
|
+
Bugfix form data leakage.
|
|
27
|
+
|
|
28
|
+
Release 0.2.1
|
|
29
|
+
=============
|
|
30
|
+
|
|
31
|
+
Supoort multiple values for a header.
|
|
32
|
+
Add Rack::MethodOverride to support DELETE, PUT, HEAD, OPTION methods.
|
data/Gemfile
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
source 'https://rubygems.org'
|
|
2
|
+
|
|
3
|
+
gem 'rack', '>= 1.4.1'
|
|
4
|
+
#gem 'rack', path: "../../ruby/rack"
|
|
5
|
+
gem 'spoon', '~> 0.0.4'
|
|
6
|
+
|
|
7
|
+
group :development do
|
|
8
|
+
gem 'jeweler', '~> 1.8.7'
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
group :test do
|
|
12
|
+
gem 'guard'
|
|
13
|
+
gem 'guard-minitest'
|
|
14
|
+
gem 'multipart-post'
|
|
15
|
+
gem 'pry'
|
|
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'
|
|
35
|
+
end
|
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
GEM
|
|
2
|
+
remote: https://rubygems.org/
|
|
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)
|
|
30
|
+
addressable (2.3.5)
|
|
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)
|
|
60
|
+
git (1.2.6)
|
|
61
|
+
github_api (0.10.1)
|
|
62
|
+
addressable
|
|
63
|
+
faraday (~> 0.8.1)
|
|
64
|
+
hashie (>= 1.2)
|
|
65
|
+
multi_json (~> 1.4)
|
|
66
|
+
nokogiri (~> 1.5.2)
|
|
67
|
+
oauth2
|
|
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)
|
|
74
|
+
guard-minitest (0.5.0)
|
|
75
|
+
guard (>= 0.4)
|
|
76
|
+
haml (4.0.4)
|
|
77
|
+
tilt
|
|
78
|
+
hashie (2.0.5)
|
|
79
|
+
highline (1.6.20)
|
|
80
|
+
hike (1.2.3)
|
|
81
|
+
httpauth (0.2.0)
|
|
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)
|
|
88
|
+
builder
|
|
89
|
+
bundler (~> 1.0)
|
|
90
|
+
git (>= 1.2.5)
|
|
91
|
+
github_api (= 0.10.1)
|
|
92
|
+
highline (>= 1.6.15)
|
|
93
|
+
nokogiri (= 1.5.10)
|
|
94
|
+
rake
|
|
95
|
+
rdoc
|
|
96
|
+
jquery-rails (3.0.4)
|
|
97
|
+
railties (>= 3.0, < 5.0)
|
|
98
|
+
thor (>= 0.14, < 2.0)
|
|
99
|
+
json (1.8.1-java)
|
|
100
|
+
jwt (0.1.8)
|
|
101
|
+
multi_json (>= 1.5)
|
|
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)
|
|
114
|
+
multi_xml (0.5.5)
|
|
115
|
+
multipart-post (1.2.0)
|
|
116
|
+
nokogiri (1.5.10-java)
|
|
117
|
+
oauth2 (0.9.2)
|
|
118
|
+
faraday (~> 0.8)
|
|
119
|
+
httpauth (~> 0.2)
|
|
120
|
+
jwt (~> 0.1.4)
|
|
121
|
+
multi_json (~> 1.0)
|
|
122
|
+
multi_xml (~> 0.5)
|
|
123
|
+
rack (~> 1.2)
|
|
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)
|
|
132
|
+
method_source (~> 0.8)
|
|
133
|
+
slop (~> 3.4)
|
|
134
|
+
pry (0.9.12.4-java)
|
|
135
|
+
coderay (~> 1.0)
|
|
136
|
+
method_source (~> 0.8)
|
|
137
|
+
slop (~> 3.4)
|
|
138
|
+
spoon (~> 0.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)
|
|
161
|
+
rcov (0.9.11)
|
|
162
|
+
rcov (0.9.11-java)
|
|
163
|
+
rdoc (4.1.0)
|
|
164
|
+
json (~> 1.4)
|
|
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)
|
|
183
|
+
spoon (0.0.4)
|
|
184
|
+
ffi
|
|
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)
|
|
217
|
+
|
|
218
|
+
PLATFORMS
|
|
219
|
+
java
|
|
220
|
+
|
|
221
|
+
DEPENDENCIES
|
|
222
|
+
activerecord-jdbc-adapter
|
|
223
|
+
capybara
|
|
224
|
+
coffee-rails (~> 4.0.0)
|
|
225
|
+
guard
|
|
226
|
+
guard-minitest
|
|
227
|
+
haml
|
|
228
|
+
jbuilder (~> 1.2)
|
|
229
|
+
jdbc-sqlite3
|
|
230
|
+
jeweler (~> 1.8.7)
|
|
231
|
+
jquery-rails (>= 3.0)
|
|
232
|
+
multipart-post
|
|
233
|
+
poltergeist
|
|
234
|
+
pry
|
|
235
|
+
rack (>= 1.4.1)
|
|
236
|
+
rails (~> 4.0.0)
|
|
237
|
+
rcov
|
|
238
|
+
rspec
|
|
239
|
+
sass-rails (~> 4.0.0)
|
|
240
|
+
sinatra
|
|
241
|
+
spoon (~> 0.0.4)
|
|
242
|
+
therubyrhino
|
|
243
|
+
turbolinks
|
|
244
|
+
uglifier (>= 1.3.0)
|
data/Guardfile
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# A sample Guardfile
|
|
2
|
+
# More info at https://github.com/guard/guard#readme
|
|
3
|
+
|
|
4
|
+
guard 'minitest' do
|
|
5
|
+
# with Minitest::Unit
|
|
6
|
+
watch(%r|^test/(.*)\/?test_(.*)\.rb|)
|
|
7
|
+
watch(%r|^lib/(.*)([^/]+)\.rb|) { |m| "test/#{m[1]}test_#{m[2]}.rb" }
|
|
8
|
+
watch(%r|^test/test_helper\.rb|) { "test" }
|
|
9
|
+
|
|
10
|
+
# with Minitest::Spec
|
|
11
|
+
# watch(%r|^spec/(.*)_spec\.rb|)
|
|
12
|
+
# watch(%r|^lib/(.*)([^/]+)\.rb|) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
|
|
13
|
+
# watch(%r|^spec/spec_helper\.rb|) { "spec" }
|
|
14
|
+
|
|
15
|
+
# Rails 3.2
|
|
16
|
+
# watch(%r|^app/controllers/(.*)\.rb|) { |m| "test/controllers/#{m[1]}_test.rb" }
|
|
17
|
+
# watch(%r|^app/helpers/(.*)\.rb|) { |m| "test/helpers/#{m[1]}_test.rb" }
|
|
18
|
+
# watch(%r|^app/models/(.*)\.rb|) { |m| "test/unit/#{m[1]}_test.rb" }
|
|
19
|
+
|
|
20
|
+
# Rails
|
|
21
|
+
# watch(%r|^app/controllers/(.*)\.rb|) { |m| "test/functional/#{m[1]}_test.rb" }
|
|
22
|
+
# watch(%r|^app/helpers/(.*)\.rb|) { |m| "test/helpers/#{m[1]}_test.rb" }
|
|
23
|
+
# watch(%r|^app/models/(.*)\.rb|) { |m| "test/unit/#{m[1]}_test.rb" }
|
|
24
|
+
end
|
data/KNOWN_ISSUES
ADDED
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
ADDED
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
[](https://travis-ci.org/isaiah/jubilee)
|
|
2
|
+
|
|
3
|
+
Jubilee server
|
|
4
|
+
=========
|
|
5
|
+
|
|
6
|
+
> "We need a web framework for Vertx.", you said.
|
|
7
|
+
|
|
8
|
+
> "But why not use Vertx in your Rails applications, it's the most productive web framework ever created."
|
|
9
|
+
|
|
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).
|
|
12
|
+
|
|
13
|
+
Why another rack server?
|
|
14
|
+
------------------------
|
|
15
|
+
|
|
16
|
+
> "Vert.x is a lightweight, high performance application platform for the JVM
|
|
17
|
+
> that's designed for modern mobile, web, and enterprise applications."
|
|
18
|
+
> - vertx.io site
|
|
19
|
+
|
|
20
|
+
In short, Vertx is nodejs on the JVM, only much more faster, checkout the awesome
|
|
21
|
+
[benchmarks](http://vertxproject.wordpress.com/2012/05/09/vert-x-vs-node-js-simple-http-benchmarks/)
|
|
22
|
+
|
|
23
|
+
By using Vertx, jubilee inherent advantages in terms of performance, and all
|
|
24
|
+
the other cool features of Vertx:
|
|
25
|
+
|
|
26
|
+
* [EventBus](https://github.com/isaiah/jubilee/wiki/Event-Bus)
|
|
27
|
+
* [SharedData](https://github.com/isaiah/jubilee/wiki/SharedData)
|
|
28
|
+
* [Clustering](https://github.com/isaiah/jubilee/wiki/Clustering)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
Installation
|
|
33
|
+
------------
|
|
34
|
+
|
|
35
|
+
$ jruby -S gem install jubilee
|
|
36
|
+
|
|
37
|
+
Jubilee requires JRuby 1.7.5 or later, and JDK 7+
|
|
38
|
+
|
|
39
|
+
Get started
|
|
40
|
+
-----------
|
|
41
|
+
|
|
42
|
+
$ cd a-rack-app
|
|
43
|
+
$ jruby -S jubilee
|
|
44
|
+
|
|
45
|
+
Setup
|
|
46
|
+
-----
|
|
47
|
+
|
|
48
|
+
If you use bundler, you might want to add `jubilee` to your Gemfile,
|
|
49
|
+
this is also required if you want use rails http streaming,
|
|
50
|
+
|
|
51
|
+
$ jubilee
|
|
52
|
+
|
|
53
|
+
or if you prefer to use the rack handler(e.g. development) use:
|
|
54
|
+
|
|
55
|
+
$ rails s jubilee
|
|
56
|
+
|
|
57
|
+
or
|
|
58
|
+
|
|
59
|
+
$ rackup -s jubilee
|
|
60
|
+
|
|
61
|
+
Event Bus
|
|
62
|
+
=========
|
|
63
|
+
|
|
64
|
+
Event Bus is a pub/sub mechanism, it can be used from server to server, server
|
|
65
|
+
to client and client to client, with the same API!
|
|
66
|
+
|
|
67
|
+
Examples
|
|
68
|
+
--------
|
|
69
|
+
|
|
70
|
+
Assume necessary javascript files are loaded in the page (they can be found [here](https://github.com/isaiah/jubilee/tree/master/examples/client)),
|
|
71
|
+
start jubilee in a rack application with:
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
$ jubilee --eventbus /eventbus
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
In one browser:
|
|
78
|
+
|
|
79
|
+
```javascript
|
|
80
|
+
var eb = new vertx.EventBus("/eventbus");
|
|
81
|
+
eb.registerHandler("test", function(data){
|
|
82
|
+
console.info(data);
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
In another:
|
|
88
|
+
|
|
89
|
+
```javascript
|
|
90
|
+
var eb = new vertx.EventBus("/eventbus");
|
|
91
|
+
eb.send("test", "hello, world");
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
For more advanced examples, checkout the
|
|
95
|
+
[chatapp](https://github.com/isaiah/jubilee/tree/master/examples/chatapp).
|
|
96
|
+
|
|
97
|
+
Performance Tuning
|
|
98
|
+
-------------------
|
|
99
|
+
|
|
100
|
+
If you're creating a lot of connections to a Jubilee(Vert.x) server in a short
|
|
101
|
+
period of time, e.g. benchmarking with tools like [wrk](https://github.com/wg/wrk),
|
|
102
|
+
you may need to tweak some settings in order to avoid the TCP accept queue
|
|
103
|
+
getting full. This can result in connections being refused or packets being
|
|
104
|
+
dropped during the handshake which can then cause the client to retry.
|
|
105
|
+
|
|
106
|
+
A classic symptom of this is if you see long connection times just over
|
|
107
|
+
3000ms at your client.
|
|
108
|
+
|
|
109
|
+
How to tune this is operating system specific but in Linux you need to
|
|
110
|
+
increase a couple of settings in the TCP / Net config (10000 is an
|
|
111
|
+
arbitrarily large number)
|
|
112
|
+
|
|
113
|
+
```shell
|
|
114
|
+
sudo sysctl -w net.core.somaxconn=10000
|
|
115
|
+
sudo sysctl -w net.ipv4.tcp_max_syn_backlog=10000
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
For other operating systems, please consult your operating system
|
|
119
|
+
documentation.
|
|
120
|
+
|
|
121
|
+
Contributing
|
|
122
|
+
-------------
|
|
123
|
+
|
|
124
|
+
All kinds of contributions are welcome.
|
|
125
|
+
|
|
126
|
+
File an issue [here](https://github.com/isaiah/jubilee/issues) if you encounter any problems. Or if you prefer to fix by yourself:
|
|
127
|
+
|
|
128
|
+
1. Fork it
|
|
129
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
|
130
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
|
131
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
|
132
|
+
5. Create new Pull Request
|
|
133
|
+
|
|
134
|
+
License
|
|
135
|
+
--------
|
|
136
|
+
|
|
137
|
+
See [LICENSE.txt](https://github.com/isaiah/jubilee/blob/master/LICENSE.txt)
|
|
138
|
+
|
|
139
|
+
Acknowledgment
|
|
140
|
+
--------------
|
|
141
|
+
|
|
142
|
+
YourKit is kindly supporting Jubilee Server with its full-featured Java Profiler.
|
|
143
|
+
YourKit, LLC is the creator of innovative and intelligent tools for profiling
|
|
144
|
+
Java and .NET applications. Take a look at YourKit's leading software products:
|
|
145
|
+
[YourKit Java
|
|
146
|
+
Profiler](http://www.yourkit.com/java/profiler/index.jsp) and
|
|
147
|
+
[YourKit .NET Profiler](http://www.yourkit.com/.net/profiler/index.jsp).
|