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 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