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 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
@@ -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 = "engineyard-visualvm"
7
- s.version = EngineYard::VisualVM::VERSION
8
- s.authors = ["Nick Sieger"]
9
- s.email = ["nick@nicksieger.com"]
10
- s.homepage = "https://github.com/engineyard/engineyard-visualvm"
11
- s.summary = %q{Client and server helpers for using JMX and VisualVM with EY Cloud.}
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.rubyforge_project = "jruby-extras"
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
- s.add_runtime_dependency "childprocess"
24
- s.add_runtime_dependency "engineyard"
25
- s.add_runtime_dependency "jruby-openssl" # engineyard gem uses ssl
26
- s.add_runtime_dependency "ffi-ncurses" # for highline gem, dep of engineyard
27
- s.add_development_dependency "rspec"
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:
@@ -6,6 +6,6 @@
6
6
 
7
7
  module EngineYard
8
8
  module VisualVM
9
- VERSION = "0.5.2"
9
+ VERSION = "0.5.3"
10
10
  end
11
11
  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.2
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 00:00:00 Z
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: jruby-openssl
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: &id005 !ruby/object:Gem::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: *id005
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