nolman-jetty-rails 0.9.6-jruby

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. data/History.txt +49 -0
  2. data/Licenses.txt +37 -0
  3. data/Manifest.txt +51 -0
  4. data/PostInstall.txt +2 -0
  5. data/README.rdoc +130 -0
  6. data/Rakefile +27 -0
  7. data/TODO.txt +11 -0
  8. data/bin/jetty_merb +41 -0
  9. data/bin/jetty_rails +41 -0
  10. data/jetty-libs/core-3.1.1.jar +0 -0
  11. data/jetty-libs/jetty-6.1.14.jar +0 -0
  12. data/jetty-libs/jetty-plus-6.1.14.jar +0 -0
  13. data/jetty-libs/jetty-util-6.1.14.jar +0 -0
  14. data/jetty-libs/jsp-2.1.jar +0 -0
  15. data/jetty-libs/jsp-api-2.1.jar +0 -0
  16. data/jetty-libs/servlet-api-2.5-6.1.14.jar +0 -0
  17. data/lib/jetty_rails.rb +26 -0
  18. data/lib/jetty_rails/adapters/abstract_adapter.rb +25 -0
  19. data/lib/jetty_rails/adapters/merb_adapter.rb +34 -0
  20. data/lib/jetty_rails/adapters/rails_adapter.rb +22 -0
  21. data/lib/jetty_rails/adapters/rails_jms_adapter.rb +104 -0
  22. data/lib/jetty_rails/config/command_line_reader.rb +75 -0
  23. data/lib/jetty_rails/config/rdoc_fix.rb +28 -0
  24. data/lib/jetty_rails/handler/delegate_on_errors_handler.rb +29 -0
  25. data/lib/jetty_rails/handler/public_directory_handler.rb +24 -0
  26. data/lib/jetty_rails/handler/web_app_handler.rb +85 -0
  27. data/lib/jetty_rails/jars.rb +36 -0
  28. data/lib/jetty_rails/runner.rb +46 -0
  29. data/lib/jetty_rails/server.rb +79 -0
  30. data/lib/jetty_rails/warbler_reader.rb +13 -0
  31. data/lib/jruby-rack-0.9.7-SNAPSHOT.jar +0 -0
  32. data/script/console +10 -0
  33. data/script/destroy +14 -0
  34. data/script/generate +14 -0
  35. data/script/txt2html +71 -0
  36. data/spec/config.yml +28 -0
  37. data/spec/jetty_merb_spec.rb +195 -0
  38. data/spec/jetty_rails/config_file_spec.rb +68 -0
  39. data/spec/jetty_rails/handler/delegate_on_errors_handler_spec.rb +29 -0
  40. data/spec/jetty_rails/runner_spec.rb +162 -0
  41. data/spec/jetty_rails_sample_1.yml +13 -0
  42. data/spec/jetty_rails_sample_2.yml +28 -0
  43. data/spec/jetty_rails_spec.rb +195 -0
  44. data/spec/spec.opts +2 -0
  45. data/spec/spec_helper.rb +12 -0
  46. data/tasks/jruby.rake +7 -0
  47. data/tasks/rspec.rake +49 -0
  48. data/website/index.txt +194 -0
  49. data/website/javascripts/rounded_corners_lite.inc.js +285 -0
  50. data/website/stylesheets/screen.css +159 -0
  51. data/website/template.html.erb +56 -0
  52. metadata +174 -0
@@ -0,0 +1,68 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe JettyRails::Runner, "with config file containing several servers and apps" do
4
+ before do
5
+ @yaml_config = YAML.load_file(File.join(File.dirname(__FILE__), '..', 'config.yml'))
6
+ end
7
+
8
+ it "should instantiate runner with config.yml and setup servers" do
9
+ runner = JettyRails::Runner.new(@yaml_config)
10
+ runner.servers.size.should == 3
11
+ runner.servers[4000].should_not == nil
12
+ runner.servers[3000].should_not == nil
13
+ server = runner.servers[8080]
14
+ server.should_not == nil
15
+ server.app_contexts.size.should == 2
16
+ end
17
+
18
+ it "should setup correct context_paths" do
19
+ runner = JettyRails::Runner.new(@yaml_config)
20
+ runner.servers[4000].config[:context_path].should == "/testB"
21
+ runner.servers[3000].config[:context_path].should == "/testA"
22
+
23
+ runner.servers[8080].config[:context_path].should == "/"
24
+ runner.servers[8080].app_contexts[0].context_path.should == "/testC"
25
+ runner.servers[8080].app_contexts[1].context_path.should == "/testD"
26
+ end
27
+
28
+ it "should setup correct adapters" do
29
+ runner = JettyRails::Runner.new(@yaml_config)
30
+ runner.servers[4000].config[:adapter].should == :merb
31
+ runner.servers[3000].config[:adapter].should == :rails
32
+
33
+ runner.servers[8080].config[:adapter].should == :rails # default
34
+ runner.servers[8080].app_contexts[0].config[:adapter].should == :merb
35
+ runner.servers[8080].app_contexts[1].config[:adapter].should == :rails
36
+ end
37
+
38
+ it "should inherit environment" do
39
+ runner = JettyRails::Runner.new(@yaml_config)
40
+ runner.servers[4000].config[:environment].should == "production"
41
+ runner.servers[3000].config[:environment].should == "development"
42
+
43
+ runner.servers[8080].config[:environment].should == "production"
44
+ runner.servers[8080].app_contexts[0].config[:environment].should =="test"
45
+ runner.servers[8080].app_contexts[1].config[:environment].should =="production"
46
+ end
47
+
48
+ it "should setup jruby environment" do
49
+ runner = JettyRails::Runner.new(@yaml_config)
50
+ runner.servers[4000].app_contexts.first.adapter.init_params['jruby.min.runtimes'].should == '1'
51
+ runner.servers[4000].app_contexts.first.adapter.init_params['jruby.max.runtimes'].should == '2'
52
+
53
+ runner.servers[3000].app_contexts.first.adapter.init_params['jruby.min.runtimes'].should == '2'
54
+ runner.servers[3000].app_contexts.first.adapter.init_params['jruby.max.runtimes'].should == '2'
55
+ end
56
+
57
+ it "should setup the server thread pool" do
58
+ runner = JettyRails::Runner.new(@yaml_config)
59
+ runner.servers[4000].server.thread_pool.max_threads.should == 40
60
+ runner.servers[4000].server.thread_pool.min_threads.should == 1
61
+ end
62
+
63
+ it "should setup the server acceptors" do
64
+ runner = JettyRails::Runner.new(@yaml_config)
65
+ runner.servers[3000].server.connectors[0].acceptors.should == 20
66
+ end
67
+
68
+ end
@@ -0,0 +1,29 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ describe JettyRails::Handler::DelegateOnErrorsHandler do
4
+ it "should decorate the original HttpServletResponse" do
5
+ original = mock("original handler", :null_object => true)
6
+ original.should_receive(:handle).once do |target, request, response, dispatch|
7
+ response.should be_kind_of(JettyRails::Handler::DelegateOnErrorsResponse)
8
+ end
9
+ delegator = JettyRails::Handler::DelegateOnErrorsHandler.new
10
+ delegator.handler = original
11
+ delegator.handle('/any/target', mock("request"), mock("response"), 0)
12
+ end
13
+ end
14
+
15
+ describe JettyRails::Handler::DelegateOnErrorsResponse do
16
+ it "should delegate all method calls to wrapped response" do
17
+ response = mock('original response')
18
+ response.should_receive(:getContentType).once.and_return('text/html; charset=UTF-8')
19
+ wrapper = JettyRails::Handler::DelegateOnErrorsResponse.new response, mock('request')
20
+ wrapper.getContentType.should == 'text/html; charset=UTF-8'
21
+ end
22
+
23
+ it "should set request to not handled state on error" do
24
+ request = mock('request')
25
+ request.should_receive(:handled=).once.with(false)
26
+ wrapper = JettyRails::Handler::DelegateOnErrorsResponse.new mock('response'), request
27
+ wrapper.sendError(403)
28
+ end
29
+ end
@@ -0,0 +1,162 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe JettyRails::Runner, "with no extra configuration (rails adapter)" do
4
+ it "should require basedir to be run" do
5
+ lambda { JettyRails::Runner.new }.should raise_error
6
+ end
7
+
8
+ it "should receive basedir configuration" do
9
+ runner = JettyRails::Runner.new :base => '/any/app/dir'
10
+ runner.servers[8080].config.should have_key(:base)
11
+ runner.servers[8080].config[:base].should == '/any/app/dir'
12
+ end
13
+
14
+ it "should default to development environment" do
15
+ runner = JettyRails::Runner.new :base => Dir.pwd
16
+ runner.servers[8080].config.should have_key(:environment)
17
+ runner.servers[8080].config[:environment].should == 'development'
18
+ runner.servers[8080].app_contexts.first.init_params['rails.env'].should == 'development'
19
+ end
20
+
21
+ it "should default to the root context path" do
22
+ runner = JettyRails::Runner.new :base => Dir.pwd
23
+ runner.servers[8080].config.should have_key(:context_path)
24
+ runner.servers[8080].config[:context_path].should == '/'
25
+ runner.servers[8080].app_contexts.first.context_path.should == '/'
26
+ end
27
+
28
+ it "should set server default port to 8080" do
29
+ runner = JettyRails::Runner.new :base => Dir.pwd
30
+ runner.servers[8080].config.should have_key(:port)
31
+ runner.servers[8080].config[:port].should == 8080
32
+ end
33
+
34
+ it "should default lib_dir to lib" do
35
+ runner = JettyRails::Runner.new :base => Dir.pwd
36
+ runner.servers[8080].config.should have_key(:lib_dir)
37
+ runner.servers[8080].config[:lib_dir].should == 'lib'
38
+ end
39
+
40
+ it "should set rails root" do
41
+ runner = JettyRails::Runner.new :base => Dir.pwd
42
+ runner.servers[8080].app_contexts.first.init_params['rails.root'].should == '/'
43
+ end
44
+
45
+ it "should set public root" do
46
+ runner = JettyRails::Runner.new :base => Dir.pwd
47
+ runner.servers[8080].app_contexts.first.init_params['public.root'].should == '/public'
48
+ end
49
+
50
+ it "should set gem path" do
51
+ original = ENV['GEM_PATH']
52
+ ENV['GEM_PATH'] = nil
53
+ begin
54
+ runner = JettyRails::Runner.new :base => Dir.pwd
55
+ runner.servers[8080].app_contexts.first.init_params['gem.path'].should == 'tmp/war/WEB-INF/gems'
56
+ ensure
57
+ ENV['GEM_PATH'] = original
58
+ end
59
+ end
60
+
61
+ it "should set gem path from environment" do
62
+ original = ENV['GEM_PATH']
63
+ ENV['GEM_PATH'] = "/usr/lib/ruby/gems/1.8/gems"
64
+ begin
65
+ runner = JettyRails::Runner.new :base => Dir.pwd
66
+ runner.servers[8080].app_contexts.first.init_params['gem.path'].should == ENV['GEM_PATH']
67
+ ensure
68
+ ENV['GEM_PATH'] = original
69
+ end
70
+ end
71
+
72
+
73
+ it "should install RailsServletContextListener" do
74
+ runner = JettyRails::Runner.new :base => Dir.pwd
75
+ listeners = runner.servers[8080].app_contexts.first.event_listeners
76
+ listeners.size.should == 1
77
+ listeners[0].should be_kind_of(JettyRails::Rack::RailsServletContextListener)
78
+ end
79
+
80
+ it "should have handlers for static and dynamic content" do
81
+ runner = JettyRails::Runner.new :base => Dir.pwd
82
+ runner.servers[8080].server.handlers.size.should == 2
83
+ resource_handlers = runner.servers[8080].server.getChildHandlersByClass(JettyRails::Jetty::Handler::ResourceHandler)
84
+ resource_handlers.size.should == 1
85
+ webapp_handlers = runner.servers[8080].server.getChildHandlersByClass(JettyRails::Jetty::Handler::WebAppContext)
86
+ webapp_handlers.size.should == 1
87
+ end
88
+
89
+ it "should delegate to rails handler if requested dir has no welcome file" do
90
+ runner = JettyRails::Runner.new :base => Dir.pwd
91
+ delegate_handler = runner.servers[8080].server.handlers[0]
92
+ delegate_handler.should be_kind_of(JettyRails::Handler::DelegateOnErrorsHandler)
93
+ end
94
+
95
+ end
96
+
97
+ describe JettyRails::Runner, "with custom configuration" do
98
+
99
+ it "should allow to override the environment" do
100
+ runner = JettyRails::Runner.new :base => Dir.pwd, :environment => 'production'
101
+ runner.servers[8080].config.should have_key(:environment)
102
+ runner.servers[8080].config[:environment].should == 'production'
103
+ runner.servers[8080].app_contexts.first.init_params['rails.env'].should == 'production'
104
+ end
105
+
106
+ it "should allow to override the context path" do
107
+ runner = JettyRails::Runner.new :base => Dir.pwd, :context_path => "/myapp"
108
+ runner.servers[8080].config.should have_key(:context_path)
109
+ runner.servers[8080].config[:context_path].should == '/myapp'
110
+ runner.servers[8080].app_contexts.first.context_path.should == '/myapp'
111
+ end
112
+
113
+ it "should allow to override the server port" do
114
+ runner = JettyRails::Runner.new :base => Dir.pwd, :port => 8585
115
+ runner.servers[8585].config.should have_key(:port)
116
+ runner.servers[8585].config[:port].should == 8585
117
+ runner.servers[8585].server.connectors[0].port.should == 8585
118
+ end
119
+
120
+ it "should handle custom context paths for static and dynamic content" do
121
+ runner = JettyRails::Runner.new :base => Dir.pwd, :context_path => "/myapp"
122
+ context_handlers = runner.servers[8080].server.getChildHandlersByClass(JettyRails::Jetty::Handler::ContextHandler)
123
+ context_handlers.size.should == 2 # one for static, one for dynamic
124
+ end
125
+ end
126
+
127
+ describe JettyRails::Runner, "with merb adapter" do
128
+
129
+ it "should set merb root" do
130
+ runner = JettyRails::Runner.new :adapter => :merb, :base => Dir.pwd
131
+ runner.servers[8080].app_contexts.first.init_params['merb.root'].should == '/'
132
+ end
133
+
134
+ it "should set public root" do
135
+ runner = JettyRails::Runner.new :adapter => :merb, :base => Dir.pwd
136
+ runner.servers[8080].app_contexts.first.init_params['public.root'].should == '/public'
137
+ end
138
+
139
+ it "should set gem path" do
140
+ original = ENV['GEM_PATH']
141
+ ENV['GEM_PATH'] = nil
142
+ begin
143
+ runner = JettyRails::Runner.new :adapter => :merb, :base => Dir.pwd
144
+ runner.servers[8080].app_contexts.first.init_params['gem.path'].should == 'tmp/war/WEB-INF/gems'
145
+ ensure
146
+ ENV['GEM_PATH'] = original
147
+ end
148
+ end
149
+
150
+ it "should set merb environment to development" do
151
+ runner = JettyRails::Runner.new :adapter => :merb, :base => Dir.pwd
152
+ runner.servers[8080].app_contexts.first.init_params['merb.environment'].should == 'development'
153
+ end
154
+
155
+ it "should install MerbServletContextListener and SignalHandler" do
156
+ runner = JettyRails::Runner.new :adapter => :merb, :base => Dir.pwd
157
+ listeners = runner.servers[8080].app_contexts.first.event_listeners
158
+ listeners.size.should == 2
159
+ listeners[0].should be_kind_of(JettyRails::Rack::MerbServletContextListener)
160
+ listeners[1].should be_kind_of(JettyRails::Adapters::MerbAdapter::SignalHandler)
161
+ end
162
+ end
@@ -0,0 +1,13 @@
1
+ ---
2
+ :servers:
3
+ - :context_path: /testB
4
+ :adapter: :rails
5
+ :base: jetty_rails_proj
6
+ :environment: development
7
+ :port: 3000
8
+ :environment: production
9
+ :jruby_min_runtimes: 1
10
+ :jruby_max_runtimes: 2
11
+ :thread_pool_max: 40
12
+ :thread_pool_min: 1
13
+ :acceptor_size: 20
@@ -0,0 +1,28 @@
1
+ ---
2
+ :servers:
3
+ - :context_path: /testA
4
+ :base: jetty_rails_proj_2
5
+ :adapter: :rails
6
+ :environment: development
7
+ :port: 2000
8
+ - :context_path: /testB
9
+ :adapter: :rails
10
+ :base: jetty_rails_proj
11
+ :environment: production
12
+ :port: 3000
13
+ - :port: 4000
14
+ :apps:
15
+ - :context_path: /testB
16
+ :adapter: :rails
17
+ :base: jetty_rails_proj
18
+ :environment: development
19
+ - :context_path: /testA
20
+ :adapter: :rails
21
+ :base: jetty_rails_proj_2
22
+ :environment: production
23
+ :environment: production
24
+ :jruby_min_runtimes: 1
25
+ :jruby_max_runtimes: 2
26
+ :thread_pool_max: 40
27
+ :thread_pool_min: 1
28
+ :acceptor_size: 20
@@ -0,0 +1,195 @@
1
+ require File.dirname(__FILE__) + '/spec_helper.rb'
2
+
3
+ describe "binary executable with no command line arguments" do
4
+
5
+ it "should set adapter to rails" do
6
+ runner = mock("runner", :null_object => true)
7
+ current_dir = Dir.pwd
8
+ JettyRails::Runner.should_receive(:new) do |config|
9
+ config.should have_key(:adapter)
10
+ config[:adapter].should == :rails
11
+ runner
12
+ end
13
+ load File.dirname(__FILE__) + '/../bin/jetty_rails'
14
+ end
15
+
16
+ it "should provide the current execution dir as basedir" do
17
+ runner = mock("runner", :null_object => true)
18
+ current_dir = Dir.pwd
19
+ JettyRails::Runner.should_receive(:new) do |config|
20
+ config.should have_key(:base)
21
+ config[:base].should == current_dir
22
+ runner
23
+ end
24
+ load File.dirname(__FILE__) + '/../bin/jetty_rails'
25
+ end
26
+
27
+ it "should not set the context path by default" do
28
+ runner = mock("runner", :null_object => true)
29
+ JettyRails::Runner.should_receive(:new) do |config|
30
+ config.should_not have_key(:context_path)
31
+ runner
32
+ end
33
+ load File.dirname(__FILE__) + '/../bin/jetty_rails'
34
+ end
35
+
36
+ it "should not set the environment by default" do
37
+ runner = mock("runner", :null_object => true)
38
+ JettyRails::Runner.should_receive(:new) do |config|
39
+ config.should_not have_key(:environment)
40
+ runner
41
+ end
42
+ load File.dirname(__FILE__) + '/../bin/jetty_rails'
43
+ end
44
+
45
+ it "should set the port to 3000 by default" do
46
+ runner = mock("runner", :null_object => true)
47
+ JettyRails::Runner.should_receive(:new) do |config|
48
+ config.should have_key(:port)
49
+ config[:port].should == 3000
50
+ runner
51
+ end
52
+ load File.dirname(__FILE__) + '/../bin/jetty_rails'
53
+ end
54
+
55
+ it "should not set classes dir by default" do
56
+ runner = mock("runner", :null_object => true)
57
+ JettyRails::Runner.should_receive(:new) do |config|
58
+ config.should_not have_key(:classes_dir)
59
+ runner
60
+ end
61
+ load File.dirname(__FILE__) + '/../bin/jetty_rails'
62
+ end
63
+
64
+ it "should not set lib dir by default" do
65
+ runner = mock("runner", :null_object => true)
66
+ JettyRails::Runner.should_receive(:new) do |config|
67
+ config.should_not have_key(:lib_dir)
68
+ runner
69
+ end
70
+ load File.dirname(__FILE__) + '/../bin/jetty_rails'
71
+ end
72
+ end
73
+
74
+ describe "binary executable with command line arguments" do
75
+
76
+ it "should take the first command line argument as basedir" do
77
+ ARGV[0] = '/any/app/dir'
78
+ runner = mock("runner", :null_object => true)
79
+ JettyRails::Runner.should_receive(:new) do |config|
80
+ config.should have_key(:base)
81
+ config[:base].should == '/any/app/dir'
82
+ runner
83
+ end
84
+ load File.dirname(__FILE__) + '/../bin/jetty_rails'
85
+ end
86
+
87
+ it "should take --context-path command line option as context path" do
88
+ ARGV[0] = '--context-path'
89
+ ARGV[1] = '/myapp'
90
+ runner = mock("runner", :null_object => true)
91
+ JettyRails::Runner.should_receive(:new) do |config|
92
+ config.should have_key(:context_path)
93
+ config[:context_path].should == '/myapp'
94
+ runner
95
+ end
96
+ load File.dirname(__FILE__) + '/../bin/jetty_rails'
97
+ end
98
+
99
+ it "should take -u command line option as context path" do
100
+ ARGV[0] = '-u'
101
+ ARGV[1] = '/myapp'
102
+ runner = mock("runner", :null_object => true)
103
+ JettyRails::Runner.should_receive(:new) do |config|
104
+ config.should have_key(:context_path)
105
+ config[:context_path].should == '/myapp'
106
+ runner
107
+ end
108
+ load File.dirname(__FILE__) + '/../bin/jetty_rails'
109
+ end
110
+
111
+ it "should take --environment command line option as custom environment" do
112
+ ARGV[0] = '--environment'
113
+ ARGV[1] = 'production'
114
+ runner = mock("runner", :null_object => true)
115
+ JettyRails::Runner.should_receive(:new) do |config|
116
+ config.should have_key(:environment)
117
+ config[:environment].should == 'production'
118
+ runner
119
+ end
120
+ load File.dirname(__FILE__) + '/../bin/jetty_rails'
121
+ end
122
+
123
+ it "should take -e command line option as custom environment" do
124
+ ARGV[0] = '-e'
125
+ ARGV[1] = 'production'
126
+ runner = mock("runner", :null_object => true)
127
+ JettyRails::Runner.should_receive(:new) do |config|
128
+ config.should have_key(:environment)
129
+ config[:environment].should == 'production'
130
+ runner
131
+ end
132
+ load File.dirname(__FILE__) + '/../bin/jetty_rails'
133
+ end
134
+
135
+ it "should take --port command line option as custom server port" do
136
+ ARGV[0] = '--port'
137
+ ARGV[1] = '80'
138
+ runner = mock("runner", :null_object => true)
139
+ JettyRails::Runner.should_receive(:new) do |config|
140
+ config.should have_key(:port)
141
+ config[:port].should == 80
142
+ runner
143
+ end
144
+ load File.dirname(__FILE__) + '/../bin/jetty_rails'
145
+ end
146
+
147
+ it "should take -p command line option as custom server port" do
148
+ ARGV[0] = '-p'
149
+ ARGV[1] = '80'
150
+ runner = mock("runner", :null_object => true)
151
+ JettyRails::Runner.should_receive(:new) do |config|
152
+ config.should have_key(:port)
153
+ config[:port].should == 80
154
+ runner
155
+ end
156
+ load File.dirname(__FILE__) + '/../bin/jetty_rails'
157
+ end
158
+
159
+ it "should take --classes command line option as custom classes dir" do
160
+ ARGV[0] = '--classes'
161
+ ARGV[1] = 'build/java/classes'
162
+ runner = mock("runner", :null_object => true)
163
+ JettyRails::Runner.should_receive(:new) do |config|
164
+ config.should have_key(:classes_dir)
165
+ config[:classes_dir].should == 'build/java/classes'
166
+ runner
167
+ end
168
+ load File.dirname(__FILE__) + '/../bin/jetty_rails'
169
+ end
170
+
171
+ it "should take --lib command line option as custom jars dir" do
172
+ ARGV[0] = '--lib'
173
+ ARGV[1] = 'java/jars'
174
+ runner = mock("runner", :null_object => true)
175
+ JettyRails::Runner.should_receive(:new) do |config|
176
+ config.should have_key(:lib_dir)
177
+ config[:lib_dir].should == 'java/jars'
178
+ runner
179
+ end
180
+ load File.dirname(__FILE__) + '/../bin/jetty_rails'
181
+ end
182
+
183
+ it "should take --jars command line option as custom jars dir" do
184
+ ARGV[0] = '--jars'
185
+ ARGV[1] = 'java/jars'
186
+ runner = mock("runner", :null_object => true)
187
+ JettyRails::Runner.should_receive(:new) do |config|
188
+ config.should have_key(:lib_dir)
189
+ config[:lib_dir].should == 'java/jars'
190
+ runner
191
+ end
192
+ load File.dirname(__FILE__) + '/../bin/jetty_rails'
193
+ end
194
+
195
+ end