passenger 5.2.3 → 5.3.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of passenger might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG +13 -0
- data/CONTRIBUTORS +5 -1
- data/build/agent.rb +22 -2
- data/build/cxx_tests.rb +41 -5
- data/build/misc.rb +4 -1
- data/build/support/cxx_dependency_map.rb +1746 -908
- data/build/support/vendor/cxx_hinted_parser/CxxHintedParser.sublime-project +8 -0
- data/build/support/vendor/cxx_hinted_parser/Gemfile +5 -0
- data/build/support/vendor/cxx_hinted_parser/Gemfile.lock +30 -0
- data/{src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core → build/support/vendor/cxx_hinted_parser}/LICENSE.md +1 -1
- data/build/support/vendor/cxx_hinted_parser/README.md +95 -0
- data/build/support/vendor/cxx_hinted_parser/Rakefile +4 -0
- data/{src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/lib/union_station_hooks_rails/initialize.rb → build/support/vendor/cxx_hinted_parser/lib/cxx_hinted_parser.rb} +2 -9
- data/build/support/vendor/cxx_hinted_parser/lib/cxx_hinted_parser/parser.rb +239 -0
- data/dev/ci/README.md +15 -2
- data/dev/ci/lib/set-container-envvars.sh +6 -0
- data/dev/ci/lib/setup-container.sh +4 -1
- data/dev/ci/scripts/debug-console-wrapper.sh +3 -1
- data/dev/ci/setup-host +5 -0
- data/dev/ci/tests/binaries/Jenkinsfile +105 -0
- data/dev/ci/tests/binaries/build-linux +38 -0
- data/dev/ci/tests/binaries/build-macos +40 -0
- data/dev/ci/tests/binaries/prepare-macos +38 -0
- data/dev/ci/tests/binaries/test-linux +45 -0
- data/dev/ci/tests/binaries/test-macos +38 -0
- data/dev/ci/tests/debian/Jenkinsfile +2 -2
- data/dev/ci/tests/rpm/Jenkinsfile +1 -1
- data/dev/configkit-schemas/index.json +3 -24
- data/dev/vagrant/nginx_rakefile +0 -1
- data/package.json +15 -5
- data/resources/templates/error_renderer/.editorconfig +19 -0
- data/resources/templates/error_renderer/with_details/README.md +9 -0
- data/resources/templates/error_renderer/with_details/dist/bundle.js +33 -0
- data/resources/templates/error_renderer/with_details/dist/styles.css +17 -0
- data/resources/templates/error_renderer/with_details/src/DetailsView.jsx +52 -0
- data/resources/templates/error_renderer/with_details/src/GetHelpView.jsx +61 -0
- data/resources/templates/error_renderer/with_details/src/JourneyView.css +50 -0
- data/resources/templates/error_renderer/with_details/src/JourneyView.jsx +621 -0
- data/resources/templates/error_renderer/with_details/src/PageMain.css +114 -0
- data/resources/templates/error_renderer/with_details/src/PageMain.jsx +136 -0
- data/resources/templates/error_renderer/with_details/src/ProblemDescriptionView.jsx +14 -0
- data/resources/templates/error_renderer/with_details/src/ProcessDetailsView.jsx +56 -0
- data/resources/templates/error_renderer/with_details/src/SolutionDescriptionView.css +5 -0
- data/resources/templates/error_renderer/with_details/src/SolutionDescriptionView.jsx +15 -0
- data/resources/templates/error_renderer/with_details/src/SummaryView.jsx +35 -0
- data/resources/templates/error_renderer/with_details/src/SystemComponentView.css +34 -0
- data/resources/templates/error_renderer/with_details/src/SystemComponentView.jsx +168 -0
- data/resources/templates/error_renderer/with_details/src/SystemComponentsView.css +13 -0
- data/resources/templates/error_renderer/with_details/src/SystemComponentsView.jsx +116 -0
- data/resources/templates/error_renderer/with_details/src/Tab.jsx +12 -0
- data/resources/templates/error_renderer/with_details/src/Tabs.jsx +104 -0
- data/resources/templates/error_renderer/with_details/src/bootstrap/bootstrap.css +3446 -0
- data/resources/templates/error_renderer/with_details/src/bootstrap/bootstrap.js +293 -0
- data/resources/templates/error_renderer/with_details/src/bootstrap/config.json +401 -0
- data/resources/templates/error_renderer/with_details/src/index.html.template +22 -0
- data/resources/templates/error_renderer/with_details/src/index.jsx +23 -0
- data/resources/templates/error_renderer/with_details/webpack.config.js +47 -0
- data/resources/templates/error_renderer/without_details/dist/bundle.js +1 -0
- data/resources/templates/error_renderer/without_details/dist/styles.css +1 -0
- data/resources/templates/{undisclosed_error.html.template → error_renderer/without_details/src/index.html.template} +7 -11
- data/resources/templates/error_renderer/without_details/src/index.js +1 -0
- data/resources/templates/{error_layout.css → error_renderer/without_details/src/main.css} +5 -2
- data/resources/templates/error_renderer/without_details/webpack.config.js +42 -0
- data/src/agent/AgentMain.cpp +3 -3
- data/src/agent/Core/ApplicationPool/BasicProcessInfo.h +13 -0
- data/src/agent/Core/ApplicationPool/Common.h +3 -4
- data/src/agent/Core/ApplicationPool/Context.h +27 -17
- data/src/agent/Core/ApplicationPool/Group.h +3 -1
- data/src/agent/Core/ApplicationPool/Group/InitializationAndShutdown.cpp +2 -12
- data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +55 -10
- data/src/agent/Core/ApplicationPool/Group/LifetimeAndBasics.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Group/OutOfBandWork.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Group/SpawningAndRestarting.cpp +13 -6
- data/src/agent/Core/ApplicationPool/Implementation.cpp +16 -100
- data/src/agent/Core/ApplicationPool/Options.h +8 -65
- data/src/agent/Core/ApplicationPool/Pool.h +4 -21
- data/src/agent/Core/ApplicationPool/Pool/AnalyticsCollection.cpp +1 -60
- data/src/agent/Core/ApplicationPool/Pool/GeneralUtils.cpp +10 -13
- data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +3 -8
- data/src/agent/Core/ApplicationPool/Pool/Miscellaneous.cpp +2 -34
- data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Process.cpp +17 -12
- data/src/agent/Core/ApplicationPool/Process.h +146 -93
- data/src/agent/Core/ApplicationPool/Session.h +2 -2
- data/src/agent/Core/ApplicationPool/Socket.h +28 -27
- data/src/agent/Core/Config.h +1 -3
- data/src/agent/Core/ConfigChange.cpp +2 -4
- data/src/agent/Core/Controller.h +2 -8
- data/src/agent/Core/Controller/BufferBody.cpp +0 -2
- data/src/agent/Core/Controller/CheckoutSession.cpp +12 -24
- data/src/agent/Core/Controller/Config.h +1 -9
- data/src/agent/Core/Controller/ForwardResponse.cpp +0 -34
- data/src/agent/Core/Controller/Hooks.cpp +0 -7
- data/src/agent/Core/Controller/InitRequest.cpp +0 -43
- data/src/agent/Core/Controller/InitializationAndShutdown.cpp +0 -4
- data/src/agent/Core/Controller/Request.h +1 -35
- data/src/agent/Core/Controller/SendRequest.cpp +0 -32
- data/src/agent/Core/CoreMain.cpp +19 -32
- data/src/agent/Core/SpawningKit/Config.h +329 -55
- data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h +369 -0
- data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h.cxxcodebuilder +307 -0
- data/src/agent/Core/SpawningKit/Context.h +211 -0
- data/src/agent/Core/SpawningKit/DirectSpawner.h +112 -122
- data/src/agent/Core/SpawningKit/DummySpawner.h +59 -20
- data/src/agent/Core/SpawningKit/ErrorRenderer.h +117 -0
- data/src/agent/Core/SpawningKit/Exceptions.h +1157 -0
- data/src/agent/Core/SpawningKit/Factory.h +24 -17
- data/src/agent/Core/SpawningKit/{BackgroundIOCapturer.h → Handshake/BackgroundIOCapturer.h} +48 -18
- data/src/agent/Core/SpawningKit/Handshake/Perform.h +1650 -0
- data/src/agent/Core/SpawningKit/Handshake/Prepare.h +582 -0
- data/src/agent/Core/SpawningKit/Handshake/Session.h +91 -0
- data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +100 -0
- data/src/agent/Core/SpawningKit/Journey.h +561 -0
- data/src/agent/Core/SpawningKit/PipeWatcher.h +41 -18
- data/src/agent/Core/SpawningKit/README.md +534 -0
- data/src/agent/Core/SpawningKit/Result.h +182 -7
- data/src/agent/Core/SpawningKit/Result/AutoGeneratedCode.h +69 -0
- data/src/agent/Core/SpawningKit/Result/AutoGeneratedCode.h.cxxcodebuilder +110 -0
- data/src/agent/Core/SpawningKit/SmartSpawner.h +1027 -562
- data/src/agent/Core/SpawningKit/Spawner.h +70 -1134
- data/src/agent/Core/SpawningKit/UserSwitchingRules.h +3 -33
- data/src/agent/README.md +2 -3
- data/src/agent/Shared/ApiServerUtils.h +2 -3
- data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +932 -0
- data/src/agent/Watchdog/Config.h +1 -3
- data/src/agent/Watchdog/WatchdogMain.cpp +2 -1
- data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +5 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +5 -0
- data/src/apache2_module/ConfigGeneral/ManifestGeneration.h +22 -13
- data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +5 -0
- data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +3 -0
- data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +13 -0
- data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +7 -0
- data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +13 -0
- data/src/cxx_supportlib/Constants.h +3 -1
- data/src/cxx_supportlib/Exceptions.h +0 -121
- data/src/cxx_supportlib/LoggingKit/Implementation.cpp +7 -6
- data/src/cxx_supportlib/LoggingKit/Logging.h +3 -1
- data/src/cxx_supportlib/Utils.cpp +42 -0
- data/src/cxx_supportlib/Utils.h +7 -0
- data/src/cxx_supportlib/Utils/IOUtils.cpp +58 -0
- data/src/cxx_supportlib/Utils/IOUtils.h +13 -0
- data/src/cxx_supportlib/Utils/JsonUtils.h +130 -23
- data/src/cxx_supportlib/Utils/ScopeGuard.h +9 -4
- data/src/cxx_supportlib/Utils/StrIntUtils.cpp +7 -0
- data/src/cxx_supportlib/Utils/StrIntUtils.h +1 -0
- data/src/cxx_supportlib/Utils/SystemTime.h +1 -1
- data/src/cxx_supportlib/Utils/Timer.h +1 -1
- data/src/cxx_supportlib/WebSocketCommandReverseServer.h +6 -4
- data/src/cxx_supportlib/vendor-copy/adhoc_lve.h +1 -0
- data/src/helper-scripts/node-loader.js +54 -59
- data/src/helper-scripts/rack-loader.rb +63 -60
- data/src/helper-scripts/rack-preloader.rb +125 -72
- data/src/helper-scripts/wsgi-loader.py +100 -43
- data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +120 -112
- data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +15 -8
- data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +142 -142
- data/src/nginx_module/ConfigGeneral/ManifestGeneration.c +26 -15
- data/src/nginx_module/ConfigGeneral/ManifestGeneration.h +3 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +76 -70
- data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +114 -99
- data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +170 -156
- data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +38 -35
- data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +5 -1
- data/src/ruby_supportlib/phusion_passenger.rb +5 -5
- data/src/ruby_supportlib/phusion_passenger/admin_tools/instance.rb +14 -1
- data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +8 -0
- data/src/ruby_supportlib/phusion_passenger/common_library.rb +0 -3
- data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +0 -1
- data/src/ruby_supportlib/phusion_passenger/constants.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +646 -238
- data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +117 -95
- data/src/ruby_supportlib/phusion_passenger/packaging.rb +0 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/apache2.rb +5 -1
- data/src/ruby_supportlib/phusion_passenger/preloader_shared_helpers.rb +92 -69
- data/src/ruby_supportlib/phusion_passenger/public_api.rb +0 -17
- data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +0 -3
- data/src/ruby_supportlib/phusion_passenger/request_handler.rb +4 -5
- data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +0 -22
- metadata +64 -67
- data/resources/templates/error_layout.html.template +0 -86
- data/resources/templates/general_error.html.template +0 -1
- data/resources/templates/general_error_with_html.html.template +0 -1
- data/src/agent/Core/ApplicationPool/ErrorRenderer.h +0 -131
- data/src/agent/Core/SpawningKit/Options.h +0 -41
- data/src/agent/Core/UnionStation/Connection.h +0 -173
- data/src/agent/Core/UnionStation/Context.h +0 -536
- data/src/agent/Core/UnionStation/StopwatchLog.h +0 -147
- data/src/agent/Core/UnionStation/Transaction.h +0 -249
- data/src/agent/SpawnPreparer/SpawnPreparerMain.cpp +0 -208
- data/src/cxx_supportlib/UnionStationFilterSupport.cpp +0 -67
- data/src/cxx_supportlib/UnionStationFilterSupport.h +0 -1622
- data/src/nodejs_supportlib/phusion_passenger/log_express.js +0 -106
- data/src/nodejs_supportlib/phusion_passenger/log_mongodb.js +0 -202
- data/src/nodejs_supportlib/phusion_passenger/ustreporter.js +0 -227
- data/src/nodejs_supportlib/phusion_passenger/ustrouter_connector.js +0 -448
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/CONFIG.md +0 -37
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/Gemfile +0 -17
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/Gemfile.lock +0 -59
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/README-API.md +0 -5
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/README.md +0 -117
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/Rakefile +0 -115
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core.rb +0 -423
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/api.rb +0 -238
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/connection.rb +0 -67
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/context.rb +0 -281
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/lock.rb +0 -62
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/log.rb +0 -66
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/message_channel.rb +0 -157
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/request_reporter.rb +0 -150
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/request_reporter/basics.rb +0 -199
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/request_reporter/controllers.rb +0 -187
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/request_reporter/misc.rb +0 -303
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/request_reporter/view_rendering.rb +0 -91
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/simple_json.rb +0 -396
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/spec_helper.rb +0 -279
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/time_point.rb +0 -39
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/transaction.rb +0 -173
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/utils.rb +0 -177
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/version.rb +0 -32
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/lib/union_station_hooks_core/version_data.rb +0 -44
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/ruby_versions.yml.example +0 -16
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/ruby_versions.yml.travis +0 -20
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/ruby_versions.yml.travis-with-sudo +0 -18
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_core/union_station_hooks_core.gemspec +0 -23
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/Gemfile +0 -14
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/Gemfile.lock +0 -45
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/LICENSE.md +0 -19
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/README.md +0 -104
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/Rakefile +0 -160
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/lib/union_station_hooks_rails.rb +0 -200
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/lib/union_station_hooks_rails/action_controller_extension.rb +0 -45
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/lib/union_station_hooks_rails/action_view_subscriber.rb +0 -55
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/lib/union_station_hooks_rails/active_record_subscriber.rb +0 -41
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/lib/union_station_hooks_rails/active_support_benchmarkable_extension.rb +0 -47
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/lib/union_station_hooks_rails/active_support_cache_subscriber.rb +0 -79
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/lib/union_station_hooks_rails/exception_logger.rb +0 -57
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/lib/union_station_hooks_rails/version.rb +0 -32
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/lib/union_station_hooks_rails/version_data.rb +0 -44
- data/src/ruby_supportlib/phusion_passenger/vendor/union_station_hooks_rails/union_station_hooks_rails.gemspec +0 -34
@@ -1,160 +0,0 @@
|
|
1
|
-
# Union Station - https://www.unionstationapp.com/
|
2
|
-
# Copyright (c) 2015 Phusion Holding B.V.
|
3
|
-
#
|
4
|
-
# "Union Station" and "Passenger" are trademarks of Phusion Holding B.V.
|
5
|
-
#
|
6
|
-
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
|
-
# of this software and associated documentation files (the "Software"), to deal
|
8
|
-
# in the Software without restriction, including without limitation the rights
|
9
|
-
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
10
|
-
# copies of the Software, and to permit persons to whom the Software is
|
11
|
-
# furnished to do so, subject to the following conditions:
|
12
|
-
#
|
13
|
-
# The above copyright notice and this permission notice shall be included in
|
14
|
-
# all copies or substantial portions of the Software.
|
15
|
-
#
|
16
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17
|
-
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
18
|
-
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
19
|
-
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
20
|
-
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
21
|
-
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
22
|
-
# THE SOFTWARE.
|
23
|
-
|
24
|
-
TRAVIS_PASSENGER_BRANCH = 'master'
|
25
|
-
|
26
|
-
if defined?(Bundler)
|
27
|
-
# Undo Bundler environment so that calls to 'bundle install' won't try to
|
28
|
-
# access the .bundle directory in the gem's toplevel directory.
|
29
|
-
clean_env = nil
|
30
|
-
Bundler.with_clean_env do
|
31
|
-
clean_env = ENV.to_hash
|
32
|
-
end
|
33
|
-
ENV.replace(clean_env)
|
34
|
-
ARGV.each do |arg|
|
35
|
-
if arg =~ /^(\w+)=(.*)$/m
|
36
|
-
ENV[$1] = $2
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
ush_core_path = ENV['USH_CORE_PATH']
|
42
|
-
if ush_core_path
|
43
|
-
require "#{ush_core_path}/lib/union_station_hooks_core"
|
44
|
-
else
|
45
|
-
require 'union_station_hooks_core'
|
46
|
-
end
|
47
|
-
|
48
|
-
require File.expand_path(File.dirname(__FILE__) + '/lib/union_station_hooks_rails')
|
49
|
-
|
50
|
-
require 'shellwords'
|
51
|
-
|
52
|
-
desc 'Install the gem bundles of test apps'
|
53
|
-
task :install_test_app_bundles do
|
54
|
-
bundle_args = ENV['BUNDLE_ARGS']
|
55
|
-
Dir['rails_test_apps/*'].each do |dir|
|
56
|
-
next if !should_run_rails_test?(dir)
|
57
|
-
puts "Installing gem bundle for Rails #{File.basename(dir)}"
|
58
|
-
sh "mkdir -p tmp.bundler"
|
59
|
-
begin
|
60
|
-
sh "cp #{dir}/Gemfile #{dir}/Gemfile.lock tmp.bundler/"
|
61
|
-
|
62
|
-
puts "Editing tmp.bundler/Gemfile.lock"
|
63
|
-
content = File.open("tmp.bundler/Gemfile.lock", "r") do |f|
|
64
|
-
f.read
|
65
|
-
end
|
66
|
-
content.gsub!(/union_station_hooks_core \(.+\)/,
|
67
|
-
"union_station_hooks_core (#{UnionStationHooks::VERSION_STRING})")
|
68
|
-
content.gsub!(/union_station_hooks_rails \(.+\)/,
|
69
|
-
"union_station_hooks_rails (#{UnionStationHooksRails::VERSION_STRING})")
|
70
|
-
File.open("tmp.bundler/Gemfile.lock", "w") do |f|
|
71
|
-
f.write(content)
|
72
|
-
end
|
73
|
-
|
74
|
-
sh "cd tmp.bundler && " \
|
75
|
-
"ln -s #{Shellwords.escape UnionStationHooks::ROOT} ush_core && " \
|
76
|
-
"ln -s #{Shellwords.escape UnionStationHooksRails::ROOT} ush_rails && " \
|
77
|
-
"bundle install --without development doc #{bundle_args}"
|
78
|
-
ensure
|
79
|
-
sh "rm -rf tmp.bundler"
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
desc 'Run tests'
|
85
|
-
task :spec do
|
86
|
-
if ENV['E']
|
87
|
-
arg = "-e #{Shellwords.escape ENV['E']}"
|
88
|
-
end
|
89
|
-
sh "bundle exec rspec -c -f d #{arg}".strip
|
90
|
-
end
|
91
|
-
|
92
|
-
task :test => :spec
|
93
|
-
|
94
|
-
desc 'Run tests in Travis'
|
95
|
-
task "spec:travis" do
|
96
|
-
if !ENV['PASSENGER_CONFIG']
|
97
|
-
Rake::Task['travis:install_passenger'].invoke
|
98
|
-
end
|
99
|
-
Rake::Task['spec'].invoke
|
100
|
-
end
|
101
|
-
|
102
|
-
desc 'Build gem'
|
103
|
-
task :gem do
|
104
|
-
sh 'gem build union_station_hooks_rails.gemspec'
|
105
|
-
end
|
106
|
-
|
107
|
-
|
108
|
-
namespace :travis do
|
109
|
-
task :install_passenger do
|
110
|
-
if File.exist?('../../../../../bin/passenger-config')
|
111
|
-
# We are vendored into Passenger
|
112
|
-
Rake::Task['travis:install_passenger_vendor'].invoke
|
113
|
-
else
|
114
|
-
Rake::Task['travis:install_passenger_git'].invoke
|
115
|
-
end
|
116
|
-
end
|
117
|
-
|
118
|
-
task :install_passenger_vendor do
|
119
|
-
passenger_config = File.expand_path('../../../../../bin/passenger-config')
|
120
|
-
ENV['PASSENGER_CONFIG'] = passenger_config
|
121
|
-
sh "#{passenger_config} install-standalone-runtime --auto"
|
122
|
-
end
|
123
|
-
|
124
|
-
task :install_passenger_git do
|
125
|
-
if !File.exist?('passenger/.git')
|
126
|
-
sh "git clone --recursive --branch #{TRAVIS_PASSENGER_BRANCH} git://github.com/phusion/passenger.git"
|
127
|
-
else
|
128
|
-
puts 'cd passenger'
|
129
|
-
Dir.chdir('passenger') do
|
130
|
-
sh 'git fetch'
|
131
|
-
sh 'rake clean'
|
132
|
-
sh "git reset --hard origin/#{TRAVIS_PASSENGER_BRANCH}"
|
133
|
-
sh 'git submodule update --init --recursive'
|
134
|
-
end
|
135
|
-
puts 'cd ..'
|
136
|
-
end
|
137
|
-
|
138
|
-
passenger_config = "#{Dir.pwd}/passenger/bin/passenger-config"
|
139
|
-
envs = {
|
140
|
-
'PASSENGER_CONFIG' => passenger_config,
|
141
|
-
'CC' => 'ccache cc',
|
142
|
-
'CXX' => 'ccache c++',
|
143
|
-
'CCACHE_COMPRESS' => '1',
|
144
|
-
'CCACHE_COMPRESS_LEVEL' => '3',
|
145
|
-
'CCACHE_DIR' => "#{Dir.pwd}/passenger/.ccache"
|
146
|
-
}
|
147
|
-
envs.each_pair do |key, val|
|
148
|
-
ENV[key] = val
|
149
|
-
puts "$ export #{key}='#{val}'"
|
150
|
-
end
|
151
|
-
sh 'mkdir -p passenger/.ccache'
|
152
|
-
sh "#{passenger_config} install-standalone-runtime --auto"
|
153
|
-
end
|
154
|
-
end
|
155
|
-
|
156
|
-
|
157
|
-
def should_run_rails_test?(dir)
|
158
|
-
# Rails >= 4.0 requires Ruby >= 1.9
|
159
|
-
RUBY_VERSION >= '1.9' || File.basename(dir) < '4.0'
|
160
|
-
end
|
@@ -1,200 +0,0 @@
|
|
1
|
-
# Union Station - https://www.unionstationapp.com/
|
2
|
-
# Copyright (c) 2010-2015 Phusion Holding B.V.
|
3
|
-
#
|
4
|
-
# "Union Station" and "Passenger" are trademarks of Phusion Holding B.V.
|
5
|
-
#
|
6
|
-
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
|
-
# of this software and associated documentation files (the "Software"), to deal
|
8
|
-
# in the Software without restriction, including without limitation the rights
|
9
|
-
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
10
|
-
# copies of the Software, and to permit persons to whom the Software is
|
11
|
-
# furnished to do so, subject to the following conditions:
|
12
|
-
#
|
13
|
-
# The above copyright notice and this permission notice shall be included in
|
14
|
-
# all copies or substantial portions of the Software.
|
15
|
-
#
|
16
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17
|
-
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
18
|
-
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
19
|
-
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
20
|
-
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
21
|
-
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
22
|
-
# THE SOFTWARE.
|
23
|
-
|
24
|
-
# Important notes:
|
25
|
-
#
|
26
|
-
# - We can't define a Railtie in this gem because union_station_hooks_rails
|
27
|
-
# may be loaded from Passenger, before Rails is loaded.
|
28
|
-
# - Make sure that you do not install any actual hooks until `initialize!`
|
29
|
-
# is called. Otherwise, union_station_hooks_core won't be able to properly
|
30
|
-
# upgrade the Union Station hook code vendored in Passenger.
|
31
|
-
# See https://github.com/phusion/union_station_hooks/hacking/Vendoring.md
|
32
|
-
# for more information.
|
33
|
-
|
34
|
-
if defined?(UnionStationHooksRails::VERSION_STRING)
|
35
|
-
if UnionStationHooksRails.initialized?
|
36
|
-
raise 'Attempted to load union_station_hooks_core even though an ' \
|
37
|
-
'alternative version was already loaded and initialized'
|
38
|
-
end
|
39
|
-
if UnionStationHooksRails.vendored?
|
40
|
-
# Passenger loaded its vendored Union Station hooks code, but the
|
41
|
-
# application has also included 'union_station_hooks_*' in its Gemfile. We
|
42
|
-
# want the version in the Gemfile to take precedence, so we unload the old
|
43
|
-
# version. At this point, the Union Station hooks aren't installed yet, so
|
44
|
-
# removing the module is enough to unload the old version.
|
45
|
-
#
|
46
|
-
# See also:
|
47
|
-
# https://github.com/phusion/union_station_hooks/blob/master/hacking/Vendoring.md
|
48
|
-
if defined?(UnionStationHooks)
|
49
|
-
UnionStationHooks.initializers.delete(UnionStationHooksRails)
|
50
|
-
end
|
51
|
-
Object.send(:remove_const, :UnionStationHooksRails)
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
module UnionStationHooksRails
|
56
|
-
# The path to the `union_station_hooks_rails` Ruby library directory.
|
57
|
-
#
|
58
|
-
# @private
|
59
|
-
LIBROOT = File.expand_path(File.dirname(__FILE__))
|
60
|
-
|
61
|
-
# The path to the `union_station_hooks_rails` gem root directory.
|
62
|
-
#
|
63
|
-
# @private
|
64
|
-
ROOT = File.dirname(LIBROOT)
|
65
|
-
|
66
|
-
class << self
|
67
|
-
# @private
|
68
|
-
@@initialized = false
|
69
|
-
# @private
|
70
|
-
@@vendored = false
|
71
|
-
|
72
|
-
# Initializes `union_station_hooks_rails`. This method is automatically
|
73
|
-
# called by `UnionStationHooks.initialized!` because we registered
|
74
|
-
# ourselves in `UnionStationHooks.initializers`. The application does
|
75
|
-
# not need to call this.
|
76
|
-
#
|
77
|
-
# If this method successfully initializes, then it returns true.
|
78
|
-
#
|
79
|
-
# Calling this method may or may not actually initialize
|
80
|
-
# `union_station_hooks_rails`. If this gem determines that initialization
|
81
|
-
# is not desired, then this method won't do anything and will return
|
82
|
-
# `false`. See {UnionStationHooksRails#should_initialize?}.
|
83
|
-
#
|
84
|
-
# Initializing twice is a no-op. It only causes this method to return true.
|
85
|
-
#
|
86
|
-
# @private
|
87
|
-
# @return [Boolean] Whether initialization was successful.
|
88
|
-
def initialize!
|
89
|
-
return false if !should_initialize?
|
90
|
-
return true if initialized?
|
91
|
-
|
92
|
-
begin
|
93
|
-
require_lib('initialize')
|
94
|
-
require_lib('active_record_subscriber')
|
95
|
-
require_lib('exception_logger')
|
96
|
-
if defined?(ActionView)
|
97
|
-
require_lib('action_view_subscriber')
|
98
|
-
end
|
99
|
-
if defined?(ActiveSupport::Cache::Store)
|
100
|
-
require_lib('active_support_cache_subscriber')
|
101
|
-
end
|
102
|
-
if defined?(ActionController::Base)
|
103
|
-
require_lib('action_controller_extension')
|
104
|
-
end
|
105
|
-
if defined?(ActiveSupport::Benchmarkable)
|
106
|
-
require_lib('active_support_benchmarkable_extension')
|
107
|
-
end
|
108
|
-
rescue => e
|
109
|
-
if UnionStationHooks.config[:initialize_from_check]
|
110
|
-
# The union_station_hooks_core gem already reported the error
|
111
|
-
# to Union Station.
|
112
|
-
STDERR.puts(' *** WARNING: an error occurred while initializing ' \
|
113
|
-
'the Union Station Rails hooks. This is because you did not ' \
|
114
|
-
'initialize the Union Station hooks from an initializer file. ' \
|
115
|
-
'Please create an initializer file ' \
|
116
|
-
'`config/initializers/union_station.rb` in which you call ' \
|
117
|
-
"this:\n\n" \
|
118
|
-
" if defined?(UnionStationHooks)\n" \
|
119
|
-
" UnionStationHooks.initialize!\n" \
|
120
|
-
" end\n\n" \
|
121
|
-
"The error is as follows:\n" \
|
122
|
-
"#{e} (#{e.class})\n " +
|
123
|
-
e.backtrace.join("\n "))
|
124
|
-
else
|
125
|
-
raise e
|
126
|
-
end
|
127
|
-
end
|
128
|
-
|
129
|
-
@@initialized = true
|
130
|
-
|
131
|
-
true
|
132
|
-
end
|
133
|
-
|
134
|
-
# Returns whether the Union Station hooks are initialized.
|
135
|
-
def initialized?
|
136
|
-
@@initialized
|
137
|
-
end
|
138
|
-
|
139
|
-
# Returns whether the Union Station hooks should be initialized. If this
|
140
|
-
# method returns false, then {UnionStationHooksRails.initialize!} doesn't
|
141
|
-
# do anything.
|
142
|
-
#
|
143
|
-
# This method only returns true if ActiveSupport >= 3 is currently loaded.
|
144
|
-
def should_initialize?
|
145
|
-
if defined?(::ActiveSupport) && !defined?(::ActiveSupport::VERSION)
|
146
|
-
require 'active_support/version'
|
147
|
-
end
|
148
|
-
defined?(::ActiveSupport) && ::ActiveSupport::VERSION::MAJOR >= 3
|
149
|
-
end
|
150
|
-
|
151
|
-
# Returns whether this `union_station_hooks_rails` gem is bundled with
|
152
|
-
# Passenger (as opposed to a standalone gem added to the Gemfile).
|
153
|
-
# See the README and the file `hacking/Vendoring.md` in the
|
154
|
-
# `union_station_hooks_core` gem for information about how Passenger
|
155
|
-
# bundles `union_station_hooks_*` gems.
|
156
|
-
#
|
157
|
-
# @private
|
158
|
-
def vendored?
|
159
|
-
@@vendored
|
160
|
-
end
|
161
|
-
|
162
|
-
# @private
|
163
|
-
def vendored=(val)
|
164
|
-
@@vendored = val
|
165
|
-
end
|
166
|
-
|
167
|
-
# @private
|
168
|
-
def require_lib(name)
|
169
|
-
require("#{LIBROOT}/union_station_hooks_rails/#{name}")
|
170
|
-
end
|
171
|
-
|
172
|
-
# @private
|
173
|
-
def require_and_check_union_station_hooks_core
|
174
|
-
if !defined?(UnionStationHooks::VERSION_STRING)
|
175
|
-
require 'union_station_hooks_core'
|
176
|
-
end
|
177
|
-
|
178
|
-
# If you update the dependency version here, also update
|
179
|
-
# the version in the gemspec and in the Gemfile.
|
180
|
-
compatible = UnionStationHooks::MAJOR_VERSION == 2 &&
|
181
|
-
ush_core_minor_and_tiny_version_compatible?
|
182
|
-
if !compatible
|
183
|
-
raise "This version of the union_station_hooks_rails gem " \
|
184
|
-
"(#{VERSION_STRING}) is only compatible with the " \
|
185
|
-
"union_station_hooks_core gem 2.x.x, starting from v2.0.3. " \
|
186
|
-
"However, you have loaded union_station_hooks_core #{UnionStationHooks::VERSION_STRING}"
|
187
|
-
end
|
188
|
-
end
|
189
|
-
|
190
|
-
# @private
|
191
|
-
def ush_core_minor_and_tiny_version_compatible?
|
192
|
-
UnionStationHooks::MINOR_VERSION >= 1 ||
|
193
|
-
UnionStationHooks::TINY_VERSION >= 4
|
194
|
-
end
|
195
|
-
end
|
196
|
-
end
|
197
|
-
|
198
|
-
UnionStationHooksRails.require_lib('version')
|
199
|
-
UnionStationHooksRails.require_and_check_union_station_hooks_core
|
200
|
-
UnionStationHooks.initializers << UnionStationHooksRails
|
@@ -1,45 +0,0 @@
|
|
1
|
-
# Union Station - https://www.unionstationapp.com/
|
2
|
-
# Copyright (c) 2010-2015 Phusion Holding B.V.
|
3
|
-
#
|
4
|
-
# "Union Station" and "Passenger" are trademarks of Phusion Holding B.V.
|
5
|
-
#
|
6
|
-
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
|
-
# of this software and associated documentation files (the "Software"), to deal
|
8
|
-
# in the Software without restriction, including without limitation the rights
|
9
|
-
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
10
|
-
# copies of the Software, and to permit persons to whom the Software is
|
11
|
-
# furnished to do so, subject to the following conditions:
|
12
|
-
#
|
13
|
-
# The above copyright notice and this permission notice shall be included in
|
14
|
-
# all copies or substantial portions of the Software.
|
15
|
-
#
|
16
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17
|
-
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
18
|
-
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
19
|
-
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
20
|
-
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
21
|
-
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
22
|
-
# THE SOFTWARE.
|
23
|
-
|
24
|
-
|
25
|
-
module UnionStationHooksRails
|
26
|
-
module ActionControllerExtension
|
27
|
-
def process_action(action, *args)
|
28
|
-
reporter = request.env['union_station_hooks']
|
29
|
-
return super if !reporter
|
30
|
-
|
31
|
-
options = {
|
32
|
-
:controller_name => self.class.name,
|
33
|
-
:action_name => action_name,
|
34
|
-
:method => request.request_method
|
35
|
-
}
|
36
|
-
reporter.log_controller_action_block(options) do
|
37
|
-
super
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
ActionController::Base.class_eval do
|
44
|
-
include UnionStationHooksRails::ActionControllerExtension
|
45
|
-
end
|
@@ -1,55 +0,0 @@
|
|
1
|
-
# Union Station - https://www.unionstationapp.com/
|
2
|
-
# Copyright (c) 2015 Phusion Holding B.V.
|
3
|
-
#
|
4
|
-
# "Union Station" and "Passenger" are trademarks of Phusion Holding B.V.
|
5
|
-
#
|
6
|
-
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
|
-
# of this software and associated documentation files (the "Software"), to deal
|
8
|
-
# in the Software without restriction, including without limitation the rights
|
9
|
-
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
10
|
-
# copies of the Software, and to permit persons to whom the Software is
|
11
|
-
# furnished to do so, subject to the following conditions:
|
12
|
-
#
|
13
|
-
# The above copyright notice and this permission notice shall be included in
|
14
|
-
# all copies or substantial portions of the Software.
|
15
|
-
#
|
16
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17
|
-
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
18
|
-
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
19
|
-
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
20
|
-
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
21
|
-
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
22
|
-
# THE SOFTWARE.
|
23
|
-
|
24
|
-
module UnionStationHooksRails
|
25
|
-
class ActionViewSubscriber < ActiveSupport::LogSubscriber
|
26
|
-
def render_collection(event)
|
27
|
-
log_view_rendering(event)
|
28
|
-
end
|
29
|
-
|
30
|
-
def render_template(event)
|
31
|
-
log_view_rendering(event)
|
32
|
-
end
|
33
|
-
|
34
|
-
def render_partial(event)
|
35
|
-
log_view_rendering(event)
|
36
|
-
end
|
37
|
-
|
38
|
-
private
|
39
|
-
|
40
|
-
def log_view_rendering(event)
|
41
|
-
reporter = Thread.current[:union_station_hooks]
|
42
|
-
return if !reporter
|
43
|
-
|
44
|
-
UnionStationHooks.call_event_pre_hook(event)
|
45
|
-
reporter.log_view_rendering(
|
46
|
-
:begin_time => event.time,
|
47
|
-
:end_time => UnionStationHooks.now,
|
48
|
-
:name => event.payload[:identifier],
|
49
|
-
:has_error => event.payload[:exception]
|
50
|
-
)
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
UnionStationHooksRails::ActionViewSubscriber.attach_to(:action_view)
|