engineyard-visualvm 0.5.2 → 0.5.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|