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