jetpack 0.1.0 → 0.1.3
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.
- data/.gitignore +2 -1
- data/LICENSE +14 -0
- data/README.markdown +35 -6
- data/Rakefile +14 -3
- data/bin/jetpack +39 -6
- data/bin_files/launch.erb +16 -0
- data/gems/bundler-1.1.0.gem +0 -0
- data/jetpack.gemspec +3 -3
- data/jetty_files/etc/fake.crt +31 -0
- data/jetty_files/etc/fake.jceks +0 -0
- data/jetty_files/etc/fake.key +51 -0
- data/jetty_files/etc/fake.pem +89 -0
- data/jetty_files/etc/jetty.xml.erb +53 -25
- data/jetty_files/jetty-init.erb +4 -0
- data/lib/jetpack/settings.rb +24 -10
- data/script/ci +1 -1
- data/spec/bundler_spec.rb +1 -1
- data/spec/filter_spec.rb +59 -0
- data/spec/rack_spec.rb +40 -0
- data/spec/sample_projects/has_gems_via_bundler/config/jetpack.yml +1 -1
- data/spec/sample_projects/has_gems_via_bundler_19/config/jetpack.yml +1 -1
- data/spec/sample_projects/has_gems_via_bundler_bad_gemfile_lock/config/jetpack.yml +1 -1
- data/spec/sample_projects/no_dependencies/config/jetpack.yml +1 -1
- data/spec/sample_projects/rack_19/Gemfile +3 -0
- data/spec/sample_projects/rack_19/Gemfile.lock +11 -0
- data/spec/sample_projects/rack_19/config.ru +8 -0
- data/spec/sample_projects/rack_19/config/jetpack.yml +9 -0
- data/spec/sample_projects/webapp/config/jetpack.yml +8 -5
- data/spec/sample_projects/webapp_filters/Gemfile +3 -0
- data/spec/sample_projects/webapp_filters/Gemfile.lock +88 -0
- data/spec/sample_projects/webapp_filters/app/controllers/application_controller.rb +5 -0
- data/spec/sample_projects/webapp_filters/config.ru +4 -0
- data/spec/sample_projects/webapp_filters/config/application.rb +46 -0
- data/spec/sample_projects/webapp_filters/config/boot.rb +6 -0
- data/spec/sample_projects/webapp_filters/config/environment.rb +5 -0
- data/spec/sample_projects/webapp_filters/config/environments/development.rb +25 -0
- data/spec/sample_projects/webapp_filters/config/environments/test.rb +35 -0
- data/spec/sample_projects/webapp_filters/config/initializers/secret_token.rb +7 -0
- data/spec/sample_projects/webapp_filters/config/jetpack.yml +10 -0
- data/spec/sample_projects/webapp_filters/config/jetpack_files/vendor/jetty/etc/custom-project-specific-jetty.xml +5 -0
- data/spec/sample_projects/webapp_filters/config/jetpack_files/vendor/jetty/etc/template-from-project-jetty.xml.erb +9 -0
- data/spec/sample_projects/webapp_filters/config/routes.rb +60 -0
- data/spec/sample_projects/webapp_filters/public/index.html +239 -0
- data/spec/sample_projects/webapp_filters/script/rails +6 -0
- data/spec/spec_helper.rb +0 -7
- data/spec/web_spec.rb +25 -9
- data/src/java/jetpack/filter/IgnoreUnknownHttpMethodsFilter.java +43 -0
- data/src/java/jetpack/filter/ValidUrlFilter.java +62 -0
- data/web_inf_files/web.xml.erb +46 -4
- metadata +110 -32
- data/gems/bundler-1.0.18.gem +0 -0
- data/gems/bundler-1.1.rc.gem +0 -0
data/.gitignore
CHANGED
data/LICENSE
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
Copyright 2012 Square Inc.
|
2
|
+
|
3
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
you may not use this file except in compliance with the License.
|
5
|
+
You may obtain a copy of the License at
|
6
|
+
|
7
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
|
9
|
+
Unless required by applicable law or agreed to in writing, software
|
10
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
See the License for the specific language governing permissions and
|
13
|
+
limitations under the License.
|
14
|
+
|
data/README.markdown
CHANGED
@@ -1,14 +1,33 @@
|
|
1
1
|
# Jetpack
|
2
2
|
|
3
|
-
|
3
|
+
jet.pack: package your JRuby webapp for Jetty.
|
4
4
|
|
5
|
-
|
5
|
+
There are already many tools in existence that help developers run JRuby webapps on popular servlet containers,
|
6
|
+
such as [trinidad](https://github.com/trinidad/trinidad), [warbler](https://github.com/jruby/warbler), [mizuno](https://github.com/matadon/mizuno), and [kirk](https://github.com/strobecorp/kirk).
|
7
|
+
Jetpack is not fundamentally different from these tools: like the rest of them it uses the [jruby-rack](https://github.com/jruby/jruby-rack) jar as a foundation. The key differences are stylistic.
|
8
|
+
|
9
|
+
Jetpack:
|
10
|
+
|
11
|
+
* Uses [Jetty](http://jetty.codehaus.org/jetty/)... in all of its
|
12
|
+
out-of-the-box, XML-configuration-file glory.
|
13
|
+
* Uses bundler to "vendor" all of your gems.
|
14
|
+
* Uses the [jruby-complete jar](http://jruby.org/download), and provides
|
15
|
+
convenience wrapper scripts (`bin/ruby` and `bin/rake`) in your project.
|
16
|
+
* Does not attempt to run Jetty in a ruby-first, embedded manner.
|
17
|
+
* Does not assume JRuby is already installed in your server environment (a
|
18
|
+
basic JRE will do just fine).
|
19
|
+
* Does not force your ruby webapp to load files from a jar or war.
|
20
|
+
|
21
|
+
In short, Jetpack creates a little self-contained JRuby/Jetty/vendored-gem world around your ruby project,
|
22
|
+
which you only need to transport to a server and fire up using a JRE.
|
23
|
+
|
24
|
+
Jetpack's implementation mainly consists of an [honest, proletarian, bash-like ruby script](https://github.com/square/jetpack/blob/master/bin/jetpack).
|
6
25
|
|
7
26
|
## Install
|
8
27
|
|
9
28
|
Deploys need to be performed using MRI. Here is a sample section of a project Gemfile:
|
10
29
|
|
11
|
-
platforms :
|
30
|
+
platforms :mri do
|
12
31
|
gem 'jetpack'
|
13
32
|
end
|
14
33
|
|
@@ -21,11 +40,21 @@ Create `config/jetpack.yml` in your project:
|
|
21
40
|
app_user: "myapp"
|
22
41
|
app_root: "/usr/local/myapp/myapp"
|
23
42
|
|
24
|
-
|
43
|
+
Some other settings you might care about:
|
44
|
+
|
45
|
+
java_options: "-Xmx2048m"
|
46
|
+
http_port: 4080
|
47
|
+
https_port: 4443
|
48
|
+
max_concurrent_connections: 20
|
49
|
+
ruby_version: 1.8
|
50
|
+
app_type: rack
|
51
|
+
keystore_type: JCEKS
|
52
|
+
keystore: /data/app/secrets/mystore.jceks
|
53
|
+
keystore_password: sekret
|
25
54
|
|
26
|
-
|
55
|
+
Run Jetpack:
|
27
56
|
|
28
|
-
|
57
|
+
bundle exec jetpack .
|
29
58
|
|
30
59
|
Of note, you'll now have:
|
31
60
|
|
data/Rakefile
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
require 'bundler'
|
2
2
|
Bundler::GemHelper.install_tasks
|
3
|
+
require 'rspec/core/rake_task'
|
4
|
+
|
5
|
+
task :default => :spec
|
6
|
+
|
7
|
+
desc "Run all specs in spec directory"
|
8
|
+
RSpec::Core::RakeTask.new(:spec => "spec:setup") do |t|
|
9
|
+
t.skip_bundler = true
|
10
|
+
t.pattern = "./spec/**/*_spec.rb"
|
11
|
+
end
|
3
12
|
|
4
13
|
namespace :spec do
|
5
14
|
desc "Download required support files for running specs."
|
@@ -9,8 +18,10 @@ namespace :spec do
|
|
9
18
|
`curl #{url} > #{local_path}` unless File.exists?(local_path)
|
10
19
|
end
|
11
20
|
|
12
|
-
|
13
|
-
|
14
|
-
local_mirror "http://
|
21
|
+
FileUtils.mkdir_p "spec/local_mirror" unless File.directory?("spec/local_mirror")
|
22
|
+
|
23
|
+
local_mirror "http://jruby.org.s3.amazonaws.com/downloads/1.6.7/jruby-complete-1.6.7.jar"
|
24
|
+
local_mirror "http://repo1.maven.org/maven2/org/mortbay/jetty/jetty-hightide/8.1.3.v20120416/jetty-hightide-8.1.3.v20120416.zip"
|
25
|
+
local_mirror "http://repo1.maven.org/maven2/org/jruby/rack/jruby-rack/1.1.5/jruby-rack-1.1.5.jar"
|
15
26
|
end
|
16
27
|
end
|
data/bin/jetpack
CHANGED
@@ -49,13 +49,16 @@ end
|
|
49
49
|
|
50
50
|
script_start_time = Time.now
|
51
51
|
|
52
|
-
@jruby_jar_file
|
53
|
-
@jetpack_dir
|
52
|
+
@jruby_jar_file = "vendor/jruby.jar"
|
53
|
+
@jetpack_dir = File.expand_path(File.join(File.dirname(__FILE__), ".."))
|
54
54
|
|
55
55
|
@gem_home = "file:" + File.expand_path(File.join(@settings.app_root, @jruby_jar_file)) + "!/META-INF/jruby.home/lib/ruby/gems/1.8"
|
56
56
|
@gem_path = @gem_home + ":vendor/bundler_gem"
|
57
57
|
|
58
|
-
|
58
|
+
# Don't set min memory size when making the build artifact
|
59
|
+
@jar_build_options = @settings.java_options.gsub(/(\s*)-Xms\S+/,'\1')
|
60
|
+
|
61
|
+
@java_dash_jar = "PATH=$PATH:$(dirname $0) GEM_HOME=\"#{@gem_home}\" GEM_PATH=\"#{@gem_path}\" exec java #{@jar_build_options} -jar"
|
59
62
|
@jruby_opts = @settings.ruby_version.to_s == '1.9' ? '--1.9' : ''
|
60
63
|
|
61
64
|
def jruby!(cmd)
|
@@ -72,7 +75,7 @@ end
|
|
72
75
|
|
73
76
|
def install_bundler_gem
|
74
77
|
unless File.exists?("#{@path_to_project}/vendor/bundler_gem")
|
75
|
-
jruby! " -S gem install #{@jetpack_dir}/gems/bundler-1.1.
|
78
|
+
jruby! " -S gem install #{@jetpack_dir}/gems/bundler-1.1.0.gem -i vendor/bundler_gem --no-rdoc --no-ri"
|
76
79
|
end
|
77
80
|
end
|
78
81
|
|
@@ -96,7 +99,7 @@ def bundle_install
|
|
96
99
|
install_bundler_gem
|
97
100
|
regenerate_gemfile_lock_if_platform_java_is_not_found
|
98
101
|
#Do the equivalent of 'bundle' in code so we know exactly which bundler we're using.
|
99
|
-
jruby! " -e 'require \"rubygems\"; require \"bundler\"; require \"bundler/cli\"; cli=Bundler::CLI.new; cli.options={:deployment=>true}; cli.install'"
|
102
|
+
jruby! " -e 'require \"rubygems\"; require \"bundler\"; require \"bundler/cli\"; cli=Bundler::CLI.new; cli.options={:deployment=>true, :without=> [\"test\", \"cucumber\"]}; cli.install'"
|
100
103
|
end
|
101
104
|
|
102
105
|
def install_jetty(vendor_dir)
|
@@ -110,6 +113,16 @@ def install_jetty(vendor_dir)
|
|
110
113
|
jetty_dir
|
111
114
|
end
|
112
115
|
|
116
|
+
def install_commons_validator(lib_dir)
|
117
|
+
commons_validator_zip = File.join(lib_dir, "commons-validator.zip")
|
118
|
+
download "http://mirrors.axint.net/apache//commons/validator/binaries/commons-validator-1.4.0-bin.zip", commons_validator_zip
|
119
|
+
unzip commons_validator_zip, lib_dir
|
120
|
+
mv File.join(lib_dir, "commons-validator-1.4.0", "commons-validator-1.4.0.jar"), lib_dir
|
121
|
+
rm_rf(File.join(lib_dir, "commons-validator-1.4.0"))
|
122
|
+
rm commons_validator_zip
|
123
|
+
lib_dir
|
124
|
+
end
|
125
|
+
|
113
126
|
def install_jruby_rack_jar(vendor_dir)
|
114
127
|
download @settings.jruby_rack, File.join(vendor_dir, "jruby-rack.jar")
|
115
128
|
end
|
@@ -136,7 +149,7 @@ end
|
|
136
149
|
|
137
150
|
def overlay_files(overlay_dir, target_dir)
|
138
151
|
files_created = note_files_created(target_dir) do
|
139
|
-
|
152
|
+
FileUtils.cp_r(Dir.glob("#{overlay_dir}/**/{*,.[^.]*}"), target_dir, :preserve => true)
|
140
153
|
end
|
141
154
|
|
142
155
|
process_template_files files_created.select{|f|f=~/\.erb$/}
|
@@ -159,7 +172,27 @@ if @settings.jetty?
|
|
159
172
|
|
160
173
|
web_inf_dir = File.join(@path_to_project, "WEB-INF")
|
161
174
|
mkdir_p web_inf_dir
|
175
|
+
FileUtils.mkdir_p(File.join(@path_to_project, "log"))
|
176
|
+
@listener = if @settings.rails?
|
177
|
+
"org.jruby.rack.rails.RailsServletContextListener"
|
178
|
+
else
|
179
|
+
"org.jruby.rack.RackServletContextListener"
|
180
|
+
end
|
162
181
|
overlay_files File.join(@jetpack_dir, "web_inf_files"), web_inf_dir
|
182
|
+
|
183
|
+
if @settings.jetty_filters?
|
184
|
+
web_inf_lib_dir = File.join(web_inf_dir, "lib")
|
185
|
+
mkdir_p web_inf_lib_dir
|
186
|
+
|
187
|
+
install_commons_validator web_inf_lib_dir
|
188
|
+
|
189
|
+
web_inf_classes_dir = File.join(web_inf_dir, "classes")
|
190
|
+
mkdir_p web_inf_classes_dir
|
191
|
+
|
192
|
+
puts "Compiling Jetty filters"
|
193
|
+
x! "javac -classpath #{vendor_dir}/jetty/lib/servlet-api-3.0.jar -d #{web_inf_classes_dir} #{@jetpack_dir}/src/java/jetpack/filter/IgnoreUnknownHttpMethodsFilter.java"
|
194
|
+
x! "javac -classpath #{vendor_dir}/jetty/lib/servlet-api-3.0.jar:#{web_inf_lib_dir}/commons-validator-1.4.0.jar -d #{web_inf_classes_dir} #{@jetpack_dir}/src/java/jetpack/filter/ValidUrlFilter.java"
|
195
|
+
end
|
163
196
|
end
|
164
197
|
|
165
198
|
config_jetpack_dir_in_project = File.join(@path_to_project, "config/jetpack_files")
|
@@ -0,0 +1,16 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
# trace back to the original location of the launch file,
|
4
|
+
# or else /../vendor/jetty will be relative to a symlink
|
5
|
+
# see: http://stackoverflow.com/a/246128
|
6
|
+
source="${BASH_SOURCE[0]}"
|
7
|
+
while [ -h "$source" ] ; do source="$(readlink "$source")"; done
|
8
|
+
this_dir="$( cd -P "$( dirname "$source" )" && pwd )"
|
9
|
+
|
10
|
+
cd $this_dir/../vendor/jetty
|
11
|
+
|
12
|
+
exec java -jar <%= @settings.java_options %> \
|
13
|
+
-Djetty.logs=$this_dir/../log \
|
14
|
+
-Djetty.home=$this_dir/../vendor/jetty \
|
15
|
+
-Djava.io.tmpdir=/tmp \
|
16
|
+
start.jar
|
Binary file
|
data/jetpack.gemspec
CHANGED
@@ -2,10 +2,10 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = "jetpack"
|
5
|
-
s.version = "0.1.
|
5
|
+
s.version = "0.1.3"
|
6
6
|
s.platform = Gem::Platform::RUBY
|
7
|
-
s.authors = ["Steve Conover"]
|
8
|
-
s.email = ["steve@squareup.com"]
|
7
|
+
s.authors = ["Steve Conover", "Xavier Shay", "Taylor Phillips", "Chris Heisterkamp"]
|
8
|
+
s.email = ["steve@squareup.com", "xavier@squareup.com", "taylor@squareup.com", "cheister@squareup.com"]
|
9
9
|
s.homepage = "https://github.com/square/jetpack"
|
10
10
|
s.summary = %q{Jetpack prepares your jRuby project for jvm deployment.}
|
11
11
|
|
@@ -0,0 +1,31 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIFXjCCA0YCCQDRNB4VfOaRQTANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJV
|
3
|
+
UzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzEc
|
4
|
+
MBoGA1UEChMTU3F1YXJlLCBJbmMuIChmYWtlKTEXMBUGA1UEAxQOKi5zcXVhcmV1
|
5
|
+
cC5jb20wHhcNMTEwOTE5MjMxMjEyWhcNMTIwOTE4MjMxMjEyWjBxMQswCQYDVQQG
|
6
|
+
EwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNj
|
7
|
+
bzEcMBoGA1UEChMTU3F1YXJlLCBJbmMuIChmYWtlKTEXMBUGA1UEAxQOKi5zcXVh
|
8
|
+
cmV1cC5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCXXp1MrMVb
|
9
|
+
D6WEKq6FwkLYvOV33Luhsu+D4Wnh2y/Z8/ItO9KAVydMp6LJLz4w2n9Xe0a7yxb1
|
10
|
+
xO/+Oa+JdrbrUwmjYfi880cTxRvqKpP5kpFlf03W1QQXYuycX+LMC0KbcXQT+SzI
|
11
|
+
U9JxbF5qqgWRYEtHCDyX9/zWs5vUCPlO3+rQ34rR8YORStbwF0gFKXrfMDnKuVQK
|
12
|
+
AyFE6j7DhNWUKwoSEvYb0RqSikwwyjhNvlJ5mGONb/iM6X3rtuizhLqPi67gULhj
|
13
|
+
smOqTmTZ18fYaUfvakyBUu2LVR9Mc/1+kpW9IuiXF9nEq/vLpZuFuvlNZJfZBvNB
|
14
|
+
ebcRUXpC+TqsgSD1dzNJDJsIKyQA5VoqY6Pu9fgN1U84ZvoOm/R27siKwKW9sOIw
|
15
|
+
Ra3BdoEhLWn+RqZMec0/eTREZJZb2XQ4vb/A1Yf9dGOKPfT7xnWwryAom5Y7Og3d
|
16
|
+
0ifQH46qWvR+ke32FTzIX7K5YEJgIyyoETX8TZNdqDkKnE0sdwChTyfqSZYqANLP
|
17
|
+
RGzlnHYFMWveTwvdLBpR6OObEaiH3I2+QdQRCjV7UEs/ZKLGhtHz93Y4UUdgY0sN
|
18
|
+
bWFxOVOCrv8FGVUTeMWo0dF+CR9gN6l54Bk40BLAKtLTI2uozM/N4Na+G0sQcu3V
|
19
|
+
8RTOYwikVLFYNzyys2FEq7CBpIgfdfwW8wIDAQABMA0GCSqGSIb3DQEBBQUAA4IC
|
20
|
+
AQBMvBMX++uRFm7jpyUpmfKOVvPFSgkTJbCJl1FQfqjbYM6Hs6tCam6MpwnUKxqy
|
21
|
+
N/LG9F26nMprnYQ/qgnlMhSYjkMmfBvR2TNUpn31GPUMpa1c2jIhom2T75TrmEF4
|
22
|
+
6SCkpPhH0gG9uhQbjE0P6pTE7FRzAqEavcSYZWo+CrnBprTuqOEmFGjNBHz57kYR
|
23
|
+
/Gchltgw5NwE0ZjvTE12aX8tQ4WZixLY5hK6JezmLgz0z1feATKCJ9C3JaLnBium
|
24
|
+
24JMRKFPmFElwA00QW8AFKY8Ea/On1u4mnhuJ2jQoHkWs1WQqerjG0WH2WBgNcQF
|
25
|
+
R/l9G/O9IvOf/284dfxAB82hWhSC4DOM6h2uk2NwdwUuSoyNbVbA+YnmFW/D3whC
|
26
|
+
Bbgo+PnE8OPQYO2lKklTCpgNNI/GN2FkowfjlM/E6WQ7nlmTVsK81eZZOvkNVtAD
|
27
|
+
UEDQ4nB8tRv/KuMMl3u0xJxx/huIOVEWiohLygTXxnVyGSJBLK3tKMrPDXpWeFnD
|
28
|
+
2VYEjMqZDL7ZkfOl1i/dP09XLOP6qMNA0+HLnPa+RipHvRi325VWgU/8pBg3Y3Ve
|
29
|
+
nhGArfNE6H8N2EuQ+q3v+98PqikkOl6vLDafRj8lHo3G+My/GqHJ0ssIsT1kj0Wi
|
30
|
+
8SIEPL65rvvNr4e81MAWMWB96ZYD8t8MVMzGAECciNha9w==
|
31
|
+
-----END CERTIFICATE-----
|
Binary file
|
@@ -0,0 +1,51 @@
|
|
1
|
+
-----BEGIN RSA PRIVATE KEY-----
|
2
|
+
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
|
51
|
+
-----END RSA PRIVATE KEY-----
|
@@ -0,0 +1,89 @@
|
|
1
|
+
Bag Attributes
|
2
|
+
localKeyID: 03 AB 04 EF 7F 65 5F 38 EC F7 FF 04 B3 E6 C1 AD 00 AC 45 4E
|
3
|
+
subject=/C=US/ST=California/L=San Francisco/O=Square, Inc. (fake)/CN=*.squareup.com
|
4
|
+
issuer=/C=US/ST=California/L=San Francisco/O=Square, Inc. (fake)/CN=*.squareup.com
|
5
|
+
-----BEGIN CERTIFICATE-----
|
6
|
+
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
|
35
|
+
-----END CERTIFICATE-----
|
36
|
+
Bag Attributes
|
37
|
+
localKeyID: 03 AB 04 EF 7F 65 5F 38 EC F7 FF 04 B3 E6 C1 AD 00 AC 45 4E
|
38
|
+
Key Attributes: <No Attributes>
|
39
|
+
-----BEGIN RSA PRIVATE KEY-----
|
40
|
+
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
|
89
|
+
-----END RSA PRIVATE KEY-----
|
@@ -26,18 +26,31 @@
|
|
26
26
|
</New>
|
27
27
|
</Set>
|
28
28
|
|
29
|
+
<% unless @settings.https_port.to_s.empty? %>
|
29
30
|
<Call name="addConnector">
|
30
31
|
<Arg>
|
31
32
|
<New class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector">
|
32
33
|
<Set name="port"><%=@settings.https_port%></Set>
|
33
34
|
<Set name="maxIdleTime">30000</Set>
|
34
|
-
<Set name="password"
|
35
|
-
<Set name="keystore"
|
36
|
-
|
35
|
+
<Set name="password"><%= @settings.keystore_password %></Set>
|
36
|
+
<Set name="keystore"><%= @settings.keystore %></Set>
|
37
|
+
<!-- Using RC4 to avoid the Rizzo/Duong attack on block ciphers. -->
|
38
|
+
<Set name="IncludeCipherSuites">
|
39
|
+
<Array type="java.lang.String">
|
40
|
+
<Item>TLS_ECDHE_ECDSA_WITH_RC4_128_SHA</Item>
|
41
|
+
<Item>TLS_ECDHE_RSA_WITH_RC4_128_SHA</Item>
|
42
|
+
<Item>TLS_ECDH_ECDSA_WITH_RC4_128_SHA</Item>
|
43
|
+
<Item>TLS_ECDH_RSA_WITH_RC4_128_SHA</Item>
|
44
|
+
<Item>SSL_RSA_WITH_RC4_128_SHA</Item>
|
45
|
+
</Array>
|
46
|
+
</Set>
|
47
|
+
<Set name="keystoreType"><%= @settings.keystore_type %></Set>
|
37
48
|
</New>
|
38
49
|
</Arg>
|
39
50
|
</Call>
|
51
|
+
<% end %>
|
40
52
|
|
53
|
+
<% unless @settings.http_port.to_s.empty? %>
|
41
54
|
<Call name="addConnector">
|
42
55
|
<Arg>
|
43
56
|
<New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
|
@@ -46,17 +59,20 @@
|
|
46
59
|
</New>
|
47
60
|
</Arg>
|
48
61
|
</Call>
|
62
|
+
<% end %>
|
49
63
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
<
|
54
|
-
|
55
|
-
<
|
56
|
-
<
|
57
|
-
|
58
|
-
|
59
|
-
|
64
|
+
<% if @settings.rails? %>
|
65
|
+
<!-- set the rails.env java system property based on the RAILS_ENV environment variable -->
|
66
|
+
<!-- this is used by jruby-rack to set Rails.env -->
|
67
|
+
<Call class="java.lang.System" name="setProperty">
|
68
|
+
<Arg>rails.env</Arg>
|
69
|
+
<Arg>
|
70
|
+
<Call class="java.lang.System" name="getenv">
|
71
|
+
<Arg>RAILS_ENV</Arg>
|
72
|
+
</Call>
|
73
|
+
</Arg>
|
74
|
+
</Call>
|
75
|
+
<% end %>
|
60
76
|
|
61
77
|
<Set name="handler">
|
62
78
|
<New id="Handlers" class="org.eclipse.jetty.server.handler.HandlerCollection">
|
@@ -65,17 +81,14 @@
|
|
65
81
|
<Item>
|
66
82
|
<New id="Contexts" class="org.eclipse.jetty.server.handler.ContextHandlerCollection"/>
|
67
83
|
</Item>
|
68
|
-
<Item>
|
69
|
-
<New id="DefaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler"/>
|
70
|
-
</Item>
|
71
84
|
<Item>
|
72
85
|
|
73
86
|
<!-- Set up the webapp context for the rails root, which is ../../ from here -->
|
74
87
|
<New class="org.eclipse.jetty.webapp.WebAppContext">
|
75
88
|
<Arg><Ref id="Contexts"/></Arg>
|
76
|
-
<Arg
|
89
|
+
<Arg><Property name="jetty.home"/>/../../</Arg> <!-- "resource base" -->
|
77
90
|
<Arg>/</Arg> <!-- webapp root -->
|
78
|
-
<Set name="extraClasspath"
|
91
|
+
<Set name="extraClasspath"><Property name="jetty.home"/>/../jruby.jar;<Property name="jetty.home"/>/../jruby-rack.jar</Set>
|
79
92
|
<!-- cp that makes ruby+rack work -->
|
80
93
|
</New>
|
81
94
|
</Item>
|
@@ -91,22 +104,37 @@
|
|
91
104
|
<Set name="dumpAfterStart">false</Set>
|
92
105
|
<Set name="dumpBeforeStop">false</Set>
|
93
106
|
|
107
|
+
<New id="ServerLog" class="java.io.PrintStream">
|
108
|
+
<Arg>
|
109
|
+
<New class="org.eclipse.jetty.util.RolloverFileOutputStream">
|
110
|
+
<Arg><Property name="jetty.home"/>/../../log/jetty_stderr_yyyy_mm_dd.log</Arg>
|
111
|
+
<Arg type="boolean">false</Arg>
|
112
|
+
<Arg type="int">30</Arg>
|
113
|
+
<Arg><Call class="java.util.TimeZone" name="getTimeZone"><Arg>GMT</Arg></Call></Arg>
|
114
|
+
<Get id="ServerLogName" name="datedFilename"/>
|
115
|
+
</New>
|
116
|
+
</Arg>
|
117
|
+
</New>
|
118
|
+
|
94
119
|
<Ref id="Handlers">
|
95
120
|
<Call name="addHandler">
|
96
121
|
<Arg>
|
97
122
|
<New id="RequestLog" class="org.eclipse.jetty.server.handler.RequestLogHandler">
|
98
|
-
|
123
|
+
<Set name="requestLog">
|
99
124
|
<New id="RequestLogImpl" class="org.eclipse.jetty.server.NCSARequestLog">
|
100
|
-
|
125
|
+
<Set name="filename"><Property name="jetty.home"/>/../../log/jetty_request_yyyy_mm_dd.log</Set>
|
101
126
|
<Set name="filenameDateFormat">yyyy_MM_dd</Set>
|
102
|
-
<Set name="retainDays">
|
127
|
+
<Set name="retainDays">30</Set>
|
103
128
|
<Set name="append">true</Set>
|
104
|
-
<Set name="extended">
|
129
|
+
<Set name="extended">true</Set>
|
130
|
+
<Set name="logLatency">true</Set>
|
131
|
+
<Set name="logDispatch">true</Set>
|
132
|
+
<Set name="preferProxiedForAddress">true</Set>
|
105
133
|
<Set name="logCookies">false</Set>
|
106
134
|
<Set name="LogTimeZone">GMT</Set>
|
107
|
-
|
108
|
-
|
109
|
-
|
135
|
+
</New>
|
136
|
+
</Set>
|
137
|
+
</New>
|
110
138
|
</Arg>
|
111
139
|
</Call>
|
112
140
|
</Ref>
|