haplo 2.5.2-java → 2.5.3-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/haplo.gemspec +2 -2
- data/lib/debuggers.rb +109 -0
- data/lib/notifications.rb +3 -0
- data/lib/plugin_tool.rb +23 -1
- data/lib/run.rb +1 -0
- data/lib/version.txt +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9a85d1c5d29a836c427c9a6045622e964b626746ca6e6d14b1db57d8488e6a4d
|
4
|
+
data.tar.gz: 50ed9669ca59195140d415eddd50d559815e320d81bcb8b0cfddf87ff3244c87
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5763f67233ec3bb7ad05bd016608cc211b6d339db362fb266d37a49486b73389367ab6f8717f3caa9bcb53f8a4714878c1699b4fa6c9c54a915c5955d577c9b0
|
7
|
+
data.tar.gz: '0278435b6a89f641b30fc80619604f7be2d56cb155f8496ef0e3969a645a61c35b1cd04cdec98d31e6d2421943aaf97c3bb16e6fce554924b8adadd9f9c93f45'
|
data/haplo.gemspec
CHANGED
@@ -3,8 +3,8 @@ Gem::Specification.new do |s|
|
|
3
3
|
files = Dir.glob("#{root_dir}/**/*.*").map { |x| x[root_dir.length + 1, x.length]}
|
4
4
|
|
5
5
|
s.name = 'haplo'
|
6
|
-
s.version = '2.5.
|
7
|
-
s.date = '2021-
|
6
|
+
s.version = '2.5.3'
|
7
|
+
s.date = '2021-07-13'
|
8
8
|
s.summary = "Haplo Plugin Tool"
|
9
9
|
s.description = "Development tools for developing Haplo plugins, see https://haplo.org"
|
10
10
|
s.licenses = ["MPL-2.0"]
|
data/lib/debuggers.rb
ADDED
@@ -0,0 +1,109 @@
|
|
1
|
+
# Haplo Plugin Tool http://docs.haplo.org/dev/tool/plugin
|
2
|
+
# (c) Haplo Services Ltd 2006 - 2016 http://www.haplo-services.com
|
3
|
+
# This Source Code Form is subject to the terms of the Mozilla Public
|
4
|
+
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
5
|
+
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
6
|
+
|
7
|
+
|
8
|
+
module PluginTool
|
9
|
+
|
10
|
+
@@profile_output = nil
|
11
|
+
|
12
|
+
def self.request_profile(options)
|
13
|
+
output_file = $stdout
|
14
|
+
close_output_file = false
|
15
|
+
if options.profile_file
|
16
|
+
output_file = File.open(options.profile_file, "a")
|
17
|
+
close_output_file = true
|
18
|
+
end
|
19
|
+
|
20
|
+
formatter = nil
|
21
|
+
case options.profile_format || 'tree'
|
22
|
+
when 'tree'
|
23
|
+
@@profile_output = ProfilerFormatterTree.new(output_file)
|
24
|
+
when 'raw'
|
25
|
+
@@profile_output = ProfilerFormatterRaw.new(output_file)
|
26
|
+
else
|
27
|
+
puts "Unknown profiler format: #{options.profile_format}"
|
28
|
+
exit 1
|
29
|
+
end
|
30
|
+
|
31
|
+
if 'OK' == PluginTool.post("/api/development-plugin-loader/debugger-profile-start", {:min => options.profile})
|
32
|
+
puts "JavaScript profiler started."
|
33
|
+
else
|
34
|
+
puts "Error starting JavaScript profiler."
|
35
|
+
exit 1
|
36
|
+
end
|
37
|
+
at_exit do
|
38
|
+
puts
|
39
|
+
puts "Disabling JavaScript profiler..."
|
40
|
+
PluginTool.post("/api/development-plugin-loader/debugger-profile-stop")
|
41
|
+
puts "JavaScript profiler disabled."
|
42
|
+
output_file.close if close_output_file
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
class ProfilerFormatter
|
47
|
+
def initialize(output_file)
|
48
|
+
@output_file = output_file
|
49
|
+
end
|
50
|
+
def format(report)
|
51
|
+
_format(report, @output_file)
|
52
|
+
@output_file.flush
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
class ProfilerFormatterRaw < ProfilerFormatter
|
57
|
+
def _format(report, output_file)
|
58
|
+
output_file.write(report)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
class ProfilerFormatterTree < ProfilerFormatter
|
63
|
+
def _format(report, output_file)
|
64
|
+
report.split("\n").each do |line|
|
65
|
+
depth, time, percent, count, position = line.split("\t")
|
66
|
+
if depth == 'REPORT'
|
67
|
+
output_file.write("PROFILE -- #{Time.new(time)}\n")
|
68
|
+
elsif depth == 'OMIT'
|
69
|
+
output_file.write((" "*time.to_i)+"... children omitted\n")
|
70
|
+
else
|
71
|
+
output_file.write((" "*depth.to_i)+"#{percent} #{count} #{time.to_i / 1000000} #{position}\n")
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
def self.profiler_handle_report(report)
|
78
|
+
if @@profile_output
|
79
|
+
@@profile_output.format(report)
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
# -------------------------------------------------------------------------
|
84
|
+
|
85
|
+
def self.request_coverage(options)
|
86
|
+
|
87
|
+
format = options.coverage_format || 'raw'
|
88
|
+
if format != 'raw'
|
89
|
+
puts "Unknown coverage format: #{format}"
|
90
|
+
exit 1
|
91
|
+
end
|
92
|
+
|
93
|
+
if 'OK' == PluginTool.post("/api/development-plugin-loader/debugger-coverage-start")
|
94
|
+
puts "Coverage capture started."
|
95
|
+
else
|
96
|
+
puts "Error starting coverage capture."
|
97
|
+
exit 1
|
98
|
+
end
|
99
|
+
|
100
|
+
at_exit do
|
101
|
+
coverage = PluginTool.post("/api/development-plugin-loader/debugger-coverage-stop")
|
102
|
+
# TODO: Check errors
|
103
|
+
File.open(options.coverage_file, "w") { |f| f.write coverage }
|
104
|
+
end
|
105
|
+
|
106
|
+
end
|
107
|
+
|
108
|
+
end
|
109
|
+
|
data/lib/notifications.rb
CHANGED
@@ -69,6 +69,9 @@ module PluginTool
|
|
69
69
|
when 'log '
|
70
70
|
# Output from console.log()
|
71
71
|
puts "LOG:#{data}"
|
72
|
+
when 'prof'
|
73
|
+
# Profiler report
|
74
|
+
PluginTool.profiler_handle_report(data)
|
72
75
|
when 'audt'
|
73
76
|
decoded = JSON.parse(data)
|
74
77
|
kind = decoded.find { |name,value| name == 'auditEntryType' }.last
|
data/lib/plugin_tool.rb
CHANGED
@@ -23,7 +23,7 @@ NO_DEPENDENCY_COMMANDS.delete('list')
|
|
23
23
|
PLUGIN_SEARCH_PATH = ['.']
|
24
24
|
|
25
25
|
# Options for passing to plugin objects
|
26
|
-
options = Struct.new(:output, :minimiser, :no_dependency, :with_dependency, :exclude_with_prefix, :no_console, :show_system_audit, :args, :force, :turbo, :server_substring, :restrict_to_app_id).new
|
26
|
+
options = Struct.new(:output, :minimiser, :no_dependency, :with_dependency, :exclude_with_prefix, :no_console, :show_system_audit, :args, :force, :turbo, :profile, :profile_file, :profile_format, :coverage_file, :coverage_format, :server_substring, :restrict_to_app_id).new
|
27
27
|
|
28
28
|
# Parse arguments
|
29
29
|
show_help = false
|
@@ -37,6 +37,11 @@ opts = GetoptLong.new(
|
|
37
37
|
['--server', '-s', GetoptLong::REQUIRED_ARGUMENT],
|
38
38
|
['--force', GetoptLong::NO_ARGUMENT],
|
39
39
|
['--turbo', GetoptLong::NO_ARGUMENT],
|
40
|
+
['--profile', GetoptLong::REQUIRED_ARGUMENT],
|
41
|
+
['--profile-file', GetoptLong::REQUIRED_ARGUMENT],
|
42
|
+
['--profile-format', GetoptLong::REQUIRED_ARGUMENT],
|
43
|
+
['--coverage-file', GetoptLong::REQUIRED_ARGUMENT],
|
44
|
+
['--coverage-format', GetoptLong::REQUIRED_ARGUMENT],
|
40
45
|
['--output', GetoptLong::REQUIRED_ARGUMENT],
|
41
46
|
['--pack-restrict-to-app-id', GetoptLong::REQUIRED_ARGUMENT],
|
42
47
|
['--no-console', '-n', GetoptLong::NO_ARGUMENT],
|
@@ -72,6 +77,16 @@ opts.each do |opt, argument|
|
|
72
77
|
options.force = true
|
73
78
|
when '--turbo'
|
74
79
|
options.turbo = true
|
80
|
+
when '--profile'
|
81
|
+
options.profile = argument.to_f
|
82
|
+
when '--profile-file'
|
83
|
+
options.profile_file = argument
|
84
|
+
when '--profile-format'
|
85
|
+
options.profile_format = argument
|
86
|
+
when '--coverage-file'
|
87
|
+
options.coverage_file = argument
|
88
|
+
when '--coverage-format'
|
89
|
+
options.coverage_format = argument
|
75
90
|
end
|
76
91
|
end
|
77
92
|
# Handle rest of command line -- first arg is the command, the rest are passed on
|
@@ -325,6 +340,13 @@ end
|
|
325
340
|
unless LOCAL_ONLY_COMMANDS[PLUGIN_TOOL_COMMAND]
|
326
341
|
PluginTool.custom_behaviour.server_ready(plugins, PLUGIN_TOOL_COMMAND, options)
|
327
342
|
plugins.each { |p| p.setup_for_server }
|
343
|
+
|
344
|
+
if options.profile
|
345
|
+
PluginTool.request_profile(options)
|
346
|
+
end
|
347
|
+
if options.coverage_file
|
348
|
+
PluginTool.request_coverage(options)
|
349
|
+
end
|
328
350
|
end
|
329
351
|
|
330
352
|
# Run the command
|
data/lib/run.rb
CHANGED
@@ -65,6 +65,7 @@ require "#{PLUGIN_TOOL_ROOT_DIR}/lib/syntax_checking.rb"
|
|
65
65
|
require "#{PLUGIN_TOOL_ROOT_DIR}/lib/notifications.rb"
|
66
66
|
require "#{PLUGIN_TOOL_ROOT_DIR}/lib/plugin.rb"
|
67
67
|
require "#{PLUGIN_TOOL_ROOT_DIR}/lib/new_plugin.rb"
|
68
|
+
require "#{PLUGIN_TOOL_ROOT_DIR}/lib/debuggers.rb"
|
68
69
|
require "#{PLUGIN_TOOL_ROOT_DIR}/lib/misc.rb"
|
69
70
|
require "#{PLUGIN_TOOL_ROOT_DIR}/lib/watchers.rb"
|
70
71
|
require "#{PLUGIN_TOOL_ROOT_DIR}/lib/minimise.rb"
|
data/lib/version.txt
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
a60e0f9
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: haplo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.5.
|
4
|
+
version: 2.5.3
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Haplo Services
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-07-13 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Development tools for developing Haplo plugins, see https://haplo.org
|
14
14
|
email: client.services@haplo-services.com
|
@@ -24,6 +24,7 @@ files:
|
|
24
24
|
- lib/auth.rb
|
25
25
|
- lib/check.rb
|
26
26
|
- lib/custom.rb
|
27
|
+
- lib/debuggers.rb
|
27
28
|
- lib/haplo-templates.jar
|
28
29
|
- lib/hmac.rb
|
29
30
|
- lib/hsvt_parser_config.rb
|
@@ -70,7 +71,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
70
71
|
version: '0'
|
71
72
|
requirements: []
|
72
73
|
rubyforge_project:
|
73
|
-
rubygems_version: 2.7.
|
74
|
+
rubygems_version: 2.7.9
|
74
75
|
signing_key:
|
75
76
|
specification_version: 4
|
76
77
|
summary: Haplo Plugin Tool
|