engineyard-visualvm 0.5.2 → 0.5.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/Gemfile +11 -1
- data/Rakefile +37 -1
- data/engineyard-visualvm-java.gemspec +47 -0
- data/engineyard-visualvm.gemspec +34 -19
- data/engineyard-visualvm.gemspec.in +35 -0
- data/lib/engineyard-visualvm/version.rb +1 -1
- data/spec/engineyard-visualvm_spec.rb +4 -2
- metadata +7 -16
data/Gemfile
CHANGED
@@ -13,4 +13,14 @@ group :development do
|
|
13
13
|
gem "jmx", :platform => :jruby
|
14
14
|
end
|
15
15
|
|
16
|
-
gemspec
|
16
|
+
gemspec_in = Dir['*.gemspec.in'].first
|
17
|
+
gemspec_ruby = gemspec_in.sub(/\.gemspec\.in/, '')
|
18
|
+
gemspec_java = gemspec_ruby + '-java'
|
19
|
+
|
20
|
+
platforms :jruby do
|
21
|
+
gemspec :name => gemspec_java
|
22
|
+
end
|
23
|
+
|
24
|
+
platforms :ruby do
|
25
|
+
gemspec :name => gemspec_ruby
|
26
|
+
end
|
data/Rakefile
CHANGED
@@ -4,7 +4,6 @@
|
|
4
4
|
# software license details.
|
5
5
|
#++
|
6
6
|
|
7
|
-
require "bundler/gem_tasks"
|
8
7
|
require "rake/clean"
|
9
8
|
|
10
9
|
desc "Compile and jar the agent extension class"
|
@@ -45,6 +44,42 @@ RSpec::Core::RakeTask.new
|
|
45
44
|
|
46
45
|
task :spec => :jar
|
47
46
|
|
47
|
+
## Bundler tasks
|
48
|
+
gemspec_in = FileList['*.gemspec.in'].first
|
49
|
+
gemspec = gemspec_in.sub(/\.in/, '')
|
50
|
+
gemspec_java = gemspec.sub(/\.gemspec/, '-java.gemspec')
|
51
|
+
write_gemspecs = lambda {
|
52
|
+
File.open(gemspec, 'w') {|f| f << eval(File.read(gemspec_in)).to_ruby }
|
53
|
+
File.open(gemspec_java, 'w') {|f| use_jruby = true; f << eval(File.read(gemspec_in)).to_ruby }
|
54
|
+
}
|
55
|
+
write_gemspecs.call unless File.exist?(gemspec) && File.exist?(gemspec_java)
|
56
|
+
|
57
|
+
task :update_gemspecs do
|
58
|
+
write_gemspecs.call
|
59
|
+
end
|
60
|
+
task :build => :update_gemspecs
|
61
|
+
task :install => :update_gemspecs
|
62
|
+
task :release => :update_gemspecs
|
63
|
+
|
64
|
+
require "bundler/gem_helper"
|
65
|
+
|
66
|
+
Bundler::GemHelper.install_tasks(:name => gemspec.sub('.gemspec', ''))
|
67
|
+
namespace :java do
|
68
|
+
gh = Bundler::GemHelper.new(Dir.pwd, gemspec_java.sub('.gemspec', ''))
|
69
|
+
# These are no-ops since we will have already tagged and pushed
|
70
|
+
def gh.guard_already_tagged; end
|
71
|
+
def gh.tag_version; yield if block_given?; end
|
72
|
+
def gh.git_push; end
|
73
|
+
gh.install
|
74
|
+
end
|
75
|
+
|
76
|
+
task :build do
|
77
|
+
Rake::Task["java:build"].invoke
|
78
|
+
end
|
79
|
+
task :release do
|
80
|
+
Rake::Task["java:release"].invoke
|
81
|
+
end
|
82
|
+
|
48
83
|
# Override push to use engineyard key
|
49
84
|
class Bundler::GemHelper
|
50
85
|
def rubygem_push(path)
|
@@ -57,6 +92,7 @@ class Bundler::GemHelper
|
|
57
92
|
end
|
58
93
|
end
|
59
94
|
|
95
|
+
## Acceptance task
|
60
96
|
begin
|
61
97
|
require 'childprocess'
|
62
98
|
require 'jmx'
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{engineyard-visualvm}
|
5
|
+
s.version = "0.5.3"
|
6
|
+
s.platform = %q{java}
|
7
|
+
|
8
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
9
|
+
s.authors = [%q{Nick Sieger}]
|
10
|
+
s.date = %q{2011-12-21}
|
11
|
+
s.description = %q{This provides a Java agent and command-line utility to enable
|
12
|
+
JMX in any Java process such that it can be accessed through a firewall,
|
13
|
+
and a VisualVM launcher aid to connect to that process through ssh.}
|
14
|
+
s.email = [%q{nick@nicksieger.com}]
|
15
|
+
s.executables = [%q{ey-visualvm}]
|
16
|
+
s.files = [%q{.gitignore}, %q{ChangeLog}, %q{Gemfile}, %q{LICENSE.txt}, %q{README.md}, %q{Rakefile}, %q{Vagrantfile}, %q{bin/ey-visualvm}, %q{cookbooks/apt/README.md}, %q{cookbooks/apt/files/default/apt-cacher}, %q{cookbooks/apt/files/default/apt-cacher.conf}, %q{cookbooks/apt/files/default/apt-proxy-v2.conf}, %q{cookbooks/apt/metadata.json}, %q{cookbooks/apt/metadata.rb}, %q{cookbooks/apt/providers/repository.rb}, %q{cookbooks/apt/recipes/cacher-client.rb}, %q{cookbooks/apt/recipes/cacher.rb}, %q{cookbooks/apt/recipes/default.rb}, %q{cookbooks/apt/resources/repository.rb}, %q{cookbooks/gems/recipes/default.rb}, %q{cookbooks/java/README.md}, %q{cookbooks/java/attributes/default.rb}, %q{cookbooks/java/files/default/java.seed}, %q{cookbooks/java/metadata.json}, %q{cookbooks/java/metadata.rb}, %q{cookbooks/java/recipes/default.rb}, %q{cookbooks/java/recipes/openjdk.rb}, %q{cookbooks/java/recipes/sun.rb}, %q{cookbooks/jruby/attributes/default.rb}, %q{cookbooks/jruby/recipes/default.rb}, %q{cookbooks/server/recipes/default.rb}, %q{cookbooks/server/templates/default/server.sh.erb}, %q{cookbooks/vagrant_main/recipes/default.rb}, %q{engineyard-visualvm-java.gemspec}, %q{engineyard-visualvm.gemspec}, %q{engineyard-visualvm.gemspec.in}, %q{ext/org/jruby/ext/jmx/Agent.java}, %q{ext/org/jruby/ext/jmx/JavaHome.java}, %q{ext/org/jruby/ext/jmx/RMIServerSocketFactoryImpl.java}, %q{lib/engineyard-visualvm.rb}, %q{lib/engineyard-visualvm/agent.jar}, %q{lib/engineyard-visualvm/cli.rb}, %q{lib/engineyard-visualvm/version.rb}, %q{spec/engineyard-visualvm_spec.rb}, %q{spec/spec_helper.rb}]
|
17
|
+
s.homepage = %q{https://github.com/engineyard/engineyard-visualvm}
|
18
|
+
s.require_paths = [%q{lib}]
|
19
|
+
s.rubyforge_project = %q{jruby-extras}
|
20
|
+
s.rubygems_version = %q{1.8.9}
|
21
|
+
s.summary = %q{Client and server helpers for using JMX and VisualVM with EY Cloud.}
|
22
|
+
s.test_files = [%q{spec/engineyard-visualvm_spec.rb}, %q{spec/spec_helper.rb}]
|
23
|
+
|
24
|
+
if s.respond_to? :specification_version then
|
25
|
+
s.specification_version = 3
|
26
|
+
|
27
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
28
|
+
s.add_runtime_dependency(%q<childprocess>, [">= 0"])
|
29
|
+
s.add_runtime_dependency(%q<engineyard>, [">= 0"])
|
30
|
+
s.add_runtime_dependency(%q<jruby-openssl>, [">= 0"])
|
31
|
+
s.add_runtime_dependency(%q<ffi-ncurses>, [">= 0"])
|
32
|
+
s.add_development_dependency(%q<rspec>, [">= 0"])
|
33
|
+
else
|
34
|
+
s.add_dependency(%q<childprocess>, [">= 0"])
|
35
|
+
s.add_dependency(%q<engineyard>, [">= 0"])
|
36
|
+
s.add_dependency(%q<jruby-openssl>, [">= 0"])
|
37
|
+
s.add_dependency(%q<ffi-ncurses>, [">= 0"])
|
38
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
39
|
+
end
|
40
|
+
else
|
41
|
+
s.add_dependency(%q<childprocess>, [">= 0"])
|
42
|
+
s.add_dependency(%q<engineyard>, [">= 0"])
|
43
|
+
s.add_dependency(%q<jruby-openssl>, [">= 0"])
|
44
|
+
s.add_dependency(%q<ffi-ncurses>, [">= 0"])
|
45
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
46
|
+
end
|
47
|
+
end
|
data/engineyard-visualvm.gemspec
CHANGED
@@ -1,28 +1,43 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
$:.push File.expand_path("../lib", __FILE__)
|
3
|
-
require "engineyard-visualvm/version"
|
4
2
|
|
5
3
|
Gem::Specification.new do |s|
|
6
|
-
s.name
|
7
|
-
s.version
|
8
|
-
|
9
|
-
s.
|
10
|
-
s.
|
11
|
-
s.
|
4
|
+
s.name = %q{engineyard-visualvm}
|
5
|
+
s.version = "0.5.3"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = [%q{Nick Sieger}]
|
9
|
+
s.date = %q{2011-12-21}
|
12
10
|
s.description = %q{This provides a Java agent and command-line utility to enable
|
13
11
|
JMX in any Java process such that it can be accessed through a firewall,
|
14
12
|
and a VisualVM launcher aid to connect to that process through ssh.}
|
13
|
+
s.email = [%q{nick@nicksieger.com}]
|
14
|
+
s.executables = [%q{ey-visualvm}]
|
15
|
+
s.files = [%q{.gitignore}, %q{ChangeLog}, %q{Gemfile}, %q{LICENSE.txt}, %q{README.md}, %q{Rakefile}, %q{Vagrantfile}, %q{bin/ey-visualvm}, %q{cookbooks/apt/README.md}, %q{cookbooks/apt/files/default/apt-cacher}, %q{cookbooks/apt/files/default/apt-cacher.conf}, %q{cookbooks/apt/files/default/apt-proxy-v2.conf}, %q{cookbooks/apt/metadata.json}, %q{cookbooks/apt/metadata.rb}, %q{cookbooks/apt/providers/repository.rb}, %q{cookbooks/apt/recipes/cacher-client.rb}, %q{cookbooks/apt/recipes/cacher.rb}, %q{cookbooks/apt/recipes/default.rb}, %q{cookbooks/apt/resources/repository.rb}, %q{cookbooks/gems/recipes/default.rb}, %q{cookbooks/java/README.md}, %q{cookbooks/java/attributes/default.rb}, %q{cookbooks/java/files/default/java.seed}, %q{cookbooks/java/metadata.json}, %q{cookbooks/java/metadata.rb}, %q{cookbooks/java/recipes/default.rb}, %q{cookbooks/java/recipes/openjdk.rb}, %q{cookbooks/java/recipes/sun.rb}, %q{cookbooks/jruby/attributes/default.rb}, %q{cookbooks/jruby/recipes/default.rb}, %q{cookbooks/server/recipes/default.rb}, %q{cookbooks/server/templates/default/server.sh.erb}, %q{cookbooks/vagrant_main/recipes/default.rb}, %q{engineyard-visualvm-java.gemspec}, %q{engineyard-visualvm.gemspec}, %q{engineyard-visualvm.gemspec.in}, %q{ext/org/jruby/ext/jmx/Agent.java}, %q{ext/org/jruby/ext/jmx/JavaHome.java}, %q{ext/org/jruby/ext/jmx/RMIServerSocketFactoryImpl.java}, %q{lib/engineyard-visualvm.rb}, %q{lib/engineyard-visualvm/agent.jar}, %q{lib/engineyard-visualvm/cli.rb}, %q{lib/engineyard-visualvm/version.rb}, %q{spec/engineyard-visualvm_spec.rb}, %q{spec/spec_helper.rb}]
|
16
|
+
s.homepage = %q{https://github.com/engineyard/engineyard-visualvm}
|
17
|
+
s.require_paths = [%q{lib}]
|
18
|
+
s.rubyforge_project = %q{jruby-extras}
|
19
|
+
s.rubygems_version = %q{1.8.9}
|
20
|
+
s.summary = %q{Client and server helpers for using JMX and VisualVM with EY Cloud.}
|
21
|
+
s.test_files = [%q{spec/engineyard-visualvm_spec.rb}, %q{spec/spec_helper.rb}]
|
15
22
|
|
16
|
-
s.
|
17
|
-
|
18
|
-
s.files = `git ls-files`.split("\n")
|
19
|
-
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
20
|
-
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
21
|
-
s.require_paths = ["lib"]
|
23
|
+
if s.respond_to? :specification_version then
|
24
|
+
s.specification_version = 3
|
22
25
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
26
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
27
|
+
s.add_runtime_dependency(%q<childprocess>, [">= 0"])
|
28
|
+
s.add_runtime_dependency(%q<engineyard>, [">= 0"])
|
29
|
+
s.add_runtime_dependency(%q<ffi-ncurses>, [">= 0"])
|
30
|
+
s.add_development_dependency(%q<rspec>, [">= 0"])
|
31
|
+
else
|
32
|
+
s.add_dependency(%q<childprocess>, [">= 0"])
|
33
|
+
s.add_dependency(%q<engineyard>, [">= 0"])
|
34
|
+
s.add_dependency(%q<ffi-ncurses>, [">= 0"])
|
35
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
36
|
+
end
|
37
|
+
else
|
38
|
+
s.add_dependency(%q<childprocess>, [">= 0"])
|
39
|
+
s.add_dependency(%q<engineyard>, [">= 0"])
|
40
|
+
s.add_dependency(%q<ffi-ncurses>, [">= 0"])
|
41
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
42
|
+
end
|
28
43
|
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "engineyard-visualvm/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "engineyard-visualvm"
|
7
|
+
s.platform = "java" if defined?(use_jruby)
|
8
|
+
s.version = EngineYard::VisualVM::VERSION
|
9
|
+
s.authors = ["Nick Sieger"]
|
10
|
+
s.email = ["nick@nicksieger.com"]
|
11
|
+
s.homepage = "https://github.com/engineyard/engineyard-visualvm"
|
12
|
+
s.summary = %q{Client and server helpers for using JMX and VisualVM with EY Cloud.}
|
13
|
+
s.description = %q{This provides a Java agent and command-line utility to enable
|
14
|
+
JMX in any Java process such that it can be accessed through a firewall,
|
15
|
+
and a VisualVM launcher aid to connect to that process through ssh.}
|
16
|
+
|
17
|
+
s.rubyforge_project = "jruby-extras"
|
18
|
+
|
19
|
+
s.files = `git ls-files`.split("\n")
|
20
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
21
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
22
|
+
s.require_paths = ["lib"]
|
23
|
+
|
24
|
+
s.add_runtime_dependency "childprocess"
|
25
|
+
s.add_runtime_dependency "engineyard"
|
26
|
+
if defined?(use_jruby)
|
27
|
+
s.add_runtime_dependency "jruby-openssl" # engineyard gem uses ssl
|
28
|
+
end
|
29
|
+
s.add_runtime_dependency "ffi-ncurses" # for highline gem, dep of engineyard
|
30
|
+
s.add_development_dependency "rspec"
|
31
|
+
end
|
32
|
+
|
33
|
+
# Local Variables:
|
34
|
+
# mode: ruby
|
35
|
+
# End:
|
@@ -53,7 +53,7 @@ describe EngineYard::VisualVM::CLI do
|
|
53
53
|
|
54
54
|
before :each do
|
55
55
|
script.class_eval do
|
56
|
-
no_tasks { define_method(:fetch_environment) { raise EY::Error, "error" } }
|
56
|
+
no_tasks { define_method(:fetch_environment) {|e,a| raise EY::Error, "error" } }
|
57
57
|
end
|
58
58
|
end
|
59
59
|
|
@@ -149,11 +149,12 @@ describe EngineYard::VisualVM::CLI do
|
|
149
149
|
before :each do
|
150
150
|
env = environment
|
151
151
|
script.class_eval do
|
152
|
-
no_tasks { define_method(:fetch_environment) { env } }
|
152
|
+
no_tasks { define_method(:fetch_environment) {|e,a| env } }
|
153
153
|
end
|
154
154
|
end
|
155
155
|
|
156
156
|
it "sets the user to 'deploy' and the host to the load balancer IP address" do
|
157
|
+
system_double.should_receive(:system).ordered.and_return true
|
157
158
|
environment.stub!(:load_balancer_ip_address).and_return "0.0.0.0"
|
158
159
|
ChildProcess.should_receive(:build).ordered.and_return do |*args|
|
159
160
|
args.join(' ').should =~ /ssh -NL.* deploy@0.0.0.0/
|
@@ -169,6 +170,7 @@ describe EngineYard::VisualVM::CLI do
|
|
169
170
|
end
|
170
171
|
|
171
172
|
it "uses the public hostname of the first instance if no load balancer" do
|
173
|
+
system_double.should_receive(:system).ordered.and_return true
|
172
174
|
environment.stub!(:load_balancer_ip_address).and_return nil
|
173
175
|
environment.stub!(:instances).and_return [double("instance").tap{|d| d.stub!(:public_hostname).and_return "example.com" }]
|
174
176
|
ChildProcess.should_receive(:build).ordered.and_return do |*args|
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: engineyard-visualvm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.5.
|
5
|
+
version: 0.5.3
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Nick Sieger
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-12-
|
13
|
+
date: 2011-12-21 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: childprocess
|
@@ -35,7 +35,7 @@ dependencies:
|
|
35
35
|
type: :runtime
|
36
36
|
version_requirements: *id002
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
|
-
name:
|
38
|
+
name: ffi-ncurses
|
39
39
|
prerelease: false
|
40
40
|
requirement: &id003 !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
@@ -45,28 +45,17 @@ dependencies:
|
|
45
45
|
version: "0"
|
46
46
|
type: :runtime
|
47
47
|
version_requirements: *id003
|
48
|
-
- !ruby/object:Gem::Dependency
|
49
|
-
name: ffi-ncurses
|
50
|
-
prerelease: false
|
51
|
-
requirement: &id004 !ruby/object:Gem::Requirement
|
52
|
-
none: false
|
53
|
-
requirements:
|
54
|
-
- - ">="
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version: "0"
|
57
|
-
type: :runtime
|
58
|
-
version_requirements: *id004
|
59
48
|
- !ruby/object:Gem::Dependency
|
60
49
|
name: rspec
|
61
50
|
prerelease: false
|
62
|
-
requirement: &
|
51
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
63
52
|
none: false
|
64
53
|
requirements:
|
65
54
|
- - ">="
|
66
55
|
- !ruby/object:Gem::Version
|
67
56
|
version: "0"
|
68
57
|
type: :development
|
69
|
-
version_requirements: *
|
58
|
+
version_requirements: *id004
|
70
59
|
description: |-
|
71
60
|
This provides a Java agent and command-line utility to enable
|
72
61
|
JMX in any Java process such that it can be accessed through a firewall,
|
@@ -113,7 +102,9 @@ files:
|
|
113
102
|
- cookbooks/server/recipes/default.rb
|
114
103
|
- cookbooks/server/templates/default/server.sh.erb
|
115
104
|
- cookbooks/vagrant_main/recipes/default.rb
|
105
|
+
- engineyard-visualvm-java.gemspec
|
116
106
|
- engineyard-visualvm.gemspec
|
107
|
+
- engineyard-visualvm.gemspec.in
|
117
108
|
- ext/org/jruby/ext/jmx/Agent.java
|
118
109
|
- ext/org/jruby/ext/jmx/JavaHome.java
|
119
110
|
- ext/org/jruby/ext/jmx/RMIServerSocketFactoryImpl.java
|