torquebox-backstage 0.5.4 → 1.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,19 +1,19 @@
1
1
  source :rubygems
2
-
2
+
3
3
  gem "sinatra", "1.2.6"
4
- gem "rack-flash", '0.1.1'
5
4
  gem 'haml', '~>3.0'
6
5
  gem 'sass', '~>3.0'
7
6
  gem "tobias-jmx", '0.8'
8
7
  gem 'json', '1.5.1'
9
- gem 'torquebox', '1.1.1'
8
+ gem 'torquebox', '~> 2.0.0.beta'#'~> 2.x.incremental'
10
9
  gem 'tobias-sinatra-url-for', '0.2.1'
11
10
  gem 'rack-accept', '~>0.4.0'
12
11
 
13
12
  # These are commented out to keep them out of Gemfile.lock
14
- # group :development do
15
- # gem 'thor', '0.14.6'
16
- # gem 'watchr', '~>0.7'
17
- # gem 'rspec', '~>2.6.0'
18
- # gem 'rack-test', '~>0.6.0'
19
- # end
13
+ #group :development do
14
+ #gem 'thor', '0.14.6'
15
+ #gem 'watchr', '~>0.7'
16
+ #gem 'rspec', '~>2.6.0'
17
+ #gem 'rack-test', '~>0.6.0'
18
+ #gem 'rake'
19
+ #end
data/README.md CHANGED
@@ -20,42 +20,35 @@ available from BackStage are also available from `/jmx-console` (with
20
20
  the exception of queue message browsing), but are more accessible in
21
21
  BackStage.
22
22
 
23
- ## Authentication ##
24
-
25
- By default, access to BackStage is wide open. You can secure it by setting
26
- `REQUIRE_AUTHENTICATION: true` in the environment section of `torquebox.yml`:
27
-
28
- environment:
29
- REQUIRE_AUTHENTICATION: true
30
-
31
- This will enable basic JAAS authentication through TorqueBox. Use the
32
- rake task to add usernames and password:
33
-
34
- $ rake torquebox:auth:adduser CREDENTIALS=username:password
23
+ *Note:* The master branch now only supports TorqueBox 2.x. If you need
24
+ BackStage for TorqueBox 1.x, install version 0.5.4 of the gem, or use
25
+ the tag `v0.5.4` from this repo.
35
26
 
36
27
  ## Installation ##
37
28
 
38
29
  BackStage can either be installed and deployed as a gem, or deployed from the
39
- application source.
30
+ application source.
40
31
 
41
32
  ### As A Gem ###
42
33
 
34
+ There are currently no released BackStage gems for TorqueBox 2.x - you will
35
+ have to generate the gem from the source:
43
36
 
44
- First, install the gem:
45
-
46
- jruby -S gem install torquebox-backstage
37
+ 1. Clone the [git repo](https://github.com/torquebox/backstage)
47
38
 
48
- Then, deploy backstage using the `backstage` command. You can deploy with security
49
- disabled:
50
-
51
- jruby -S backstage deploy
52
-
53
- Or enable security by providing a username/password pair:
54
-
55
- jruby -S backstage deploy --secure=username:password
39
+ 2. Build the gem: `jruby -S gem build torquebox-backstage.gemspec`
40
+
41
+ 3. Install the gem: `jruby -S gem install torquebox-backstage-1.0.dev.gem`
42
+
43
+ 4. deploy backstage using the `backstage` command. You can deploy with security
44
+ disabled: `jruby -S backstage deploy`
45
+ Or enable security by providing a username/password pair: `jruby -S backstage deploy --secure=username:password`
56
46
 
57
47
  ### From Source ###
58
48
 
49
+ *Note:* unless you are doing development on BackStage, the recommended
50
+ install method is to build and install the gem (see above).
51
+
59
52
  Clone the [git repo](https://github.com/torquebox/backstage),
60
53
  then run bundler to install the needed gems (listed in the
61
54
  [Gemfile](https://github.com/torquebox/backstage/blob/master/Gemfile)):
data/TORQUEBOX_VERSION CHANGED
@@ -1,2 +1 @@
1
- 1.1.1
2
-
1
+ 2.0.0.beta2
data/VERSION CHANGED
@@ -1,2 +1,3 @@
1
- 0.5.4
1
+ 1.0.0.beta1
2
+
2
3
 
data/backstage.rb CHANGED
@@ -15,7 +15,6 @@
15
15
  #
16
16
 
17
17
  require 'sinatra/base'
18
- require 'rack-flash'
19
18
  require 'rack/accept'
20
19
  require 'haml'
21
20
  require 'sass'
@@ -48,7 +47,6 @@ module Backstage
48
47
  class Application < Sinatra::Base
49
48
  enable :sessions
50
49
  use Rack::Accept
51
- use Rack::Flash
52
50
  use Rack::CommonLogger, Backstage.logger
53
51
 
54
52
  include Backstage::Authentication
data/bin/backstage CHANGED
@@ -30,12 +30,11 @@ class BackstageCommand < Thor
30
30
  :env => 'production' )
31
31
  if options[:secure]
32
32
  descriptor['environment'] = { 'REQUIRE_AUTHENTICATION' => true }
33
- credentials = []
33
+ descriptor['auth'] = {'backstage' => {'domain'=>'torquebox-torquebox-backstage', 'credentials'=>{}}}
34
34
  options[:secure].each do |user, pass|
35
- credentials << [user, pass]
35
+ descriptor['auth']['backstage']['credentials'][user] = pass
36
36
  end
37
- prop_file = TorqueBox::DeployUtils.write_credentials( credentials )
38
- puts ">> Wrote user/password entries to #{prop_file}"
37
+ puts ">> Wrote user/password entries to backstage deployment descriptor"
39
38
  else
40
39
  puts ">> WARNING: deploying BackStage with no security - use the --secure=username:password option to secure it"
41
40
  end
data/config/torquebox.yml CHANGED
@@ -8,8 +8,3 @@ tasks:
8
8
 
9
9
  ruby:
10
10
  version: 1.9
11
-
12
- environment:
13
- # Add users to $JBOSS_HOME/server/default/conf/props/torquebox-users.properties
14
- # or just call rake torquebox:auth:adduser CREDENTIALS=user:pass from the command line
15
- # REQUIRE_AUTHENTICATION: true
@@ -21,7 +21,7 @@ module Backstage
21
21
  include Resource
22
22
 
23
23
  def self.filter
24
- "torquebox.apps:*"
24
+ "torquebox.apps:name=*"
25
25
  end
26
26
 
27
27
  def self.to_hash_attributes
@@ -15,7 +15,7 @@
15
15
  #
16
16
 
17
17
  require 'torquebox'
18
- require 'org/torquebox/auth/authentication'
18
+ require 'torquebox-security'
19
19
 
20
20
  module Backstage
21
21
  module Authentication
@@ -43,7 +43,7 @@ module Backstage
43
43
 
44
44
  def authenticate(username, password)
45
45
  return false if username.nil? || password.nil?
46
- authenticator = TorqueBox::Authentication.default
46
+ authenticator = TorqueBox::Authentication['backstage']
47
47
  authenticator.authenticate(username, password)
48
48
  end
49
49
 
@@ -20,7 +20,7 @@ module Backstage
20
20
  include Resource
21
21
 
22
22
  def self.filter
23
- "org.infinispan:component=CacheManager,*"
23
+ "jboss.infinispan:component=CacheManager,*"
24
24
  end
25
25
 
26
26
  def self.to_hash_attributes
@@ -37,7 +37,9 @@ module Backstage
37
37
  end
38
38
 
39
39
  def jms_destination
40
- TorqueBox::Messaging::Queue.new( jndi_name, nil, enumerable_options )
40
+ @jms_destination ||= TorqueBox::Messaging::Queue.new( jndi_name )
41
+ @jms_destination.enumerable_options = enumerable_options
42
+ @jms_destination
41
43
  end
42
44
 
43
45
  def each(options = { })
@@ -72,17 +74,17 @@ module Backstage
72
74
 
73
75
  def self.display_name(name)
74
76
  display_name = name.gsub( /jms\..*?\./, '' )
75
- display_name = 'Backgroundable' if display_name =~ %r{/queues/torquebox/.*/backgroundable}
77
+ display_name = 'Backgroundable' if display_name =~ %r{/queues/.*/tasks/torquebox_backgroundable}
76
78
  display_name = "#{$1.classify}Task" if display_name =~ %r{/queues/torquebox/.*/tasks/(.*)$}
77
79
  display_name
78
80
  end
79
81
 
80
82
  def app
81
- name =~ %r{/queues/torquebox/(.*?)/} ? App.find( "torquebox.apps:app=#{$1}" ) : nil
83
+ name =~ %r{/queues/torquebox/(.*?)/} ? App.find( "torquebox.apps:name=#{$1}" ) : nil
82
84
  end
83
85
 
84
86
  def app_name
85
- name =~ %r{/queues/torquebox/(.*)} ? $1 : 'n/a'
87
+ name =~ %r{/queues/torquebox/(.*?)/} ? $1 : 'n/a'
86
88
  end
87
89
 
88
90
  def pause
@@ -14,25 +14,28 @@
14
14
  # limitations under the License.
15
15
  #
16
16
 
17
- require 'torquebox/messaging/javax_jms_text_message'
18
-
19
17
  module Backstage
20
18
  class Message
21
19
  include Resource
22
20
 
23
- attr_reader :jms_message
24
-
25
- IGNORED_PROPERTIES = %w{ torquebox_encoding JMSXDeliveryCount }
21
+ IGNORED_PROPERTIES = [ 'JMSXDeliveryCount', TorqueBox::Messaging::Message::ENCODING_PROPERTY ]
22
+
26
23
  def initialize(message)
27
- @jms_message = message
24
+ @torquebox_message = message
25
+ end
26
+
27
+ def jms_message
28
+ @torquebox_message.jms_message
28
29
  end
29
30
 
30
31
  def content
31
- jms_message.decode.inspect
32
+ @torquebox_message.decode.inspect
32
33
  rescue Exception => ex
33
- # we may not have access to a serialized class. Just show the
34
- # Marshal string in that case
35
- jms_message.get_string_property( 'torquebox_encoding' ) ? Base64.decode64( jms_message.text ) : jms_message.text
34
+ if @jms_message.respond_to?(:text)
35
+ @jms_message.text
36
+ else
37
+ "Undecodable message"
38
+ end
36
39
  end
37
40
 
38
41
  def jms_id
@@ -47,7 +50,7 @@ module Backstage
47
50
  end
48
51
  end
49
52
 
50
- JMS_PROPERTIES = %w{ JMS_Correlation_ID JMS_Priority JMS_Type JMS_Reply_To JMS_Redelivered }
53
+ JMS_PROPERTIES = %w{ JMS_Correlation_ID JMS_Priority JMS_Type JMS_Reply_To JMS_Redelivered }
51
54
  def jms_properties
52
55
  @jms_properties ||= JMS_PROPERTIES.inject( {} ) do |props,name|
53
56
  value = jms_message.send(name.downcase)
@@ -20,11 +20,24 @@ module Backstage
20
20
  include Resource
21
21
 
22
22
  def self.filter
23
- "jboss.jgroups:cluster=*,type=channel"
23
+ "jgroups:cluster=*,type=channel"
24
24
  end
25
25
 
26
26
  def self.to_hash_attributes
27
- super + [:name, :received_messages, :received_bytes, :connected, :num_messages, :receive_local_msgs, :view, :sent_bytes, :timer_threads, :cluster_name, :receive_blocks, :address, :number_of_tasks_in_timer, :stats, :version, :sent_messages]
27
+ super + [:address,
28
+ :cluster_name,
29
+ :connected,
30
+ :name,
31
+ :number_of_tasks_in_timer,
32
+ :open,
33
+ :received_bytes,
34
+ :received_messages,
35
+ :sent_bytes,
36
+ :sent_messages,
37
+ :stats,
38
+ :timer_threads,
39
+ :version,
40
+ :view]
28
41
  end
29
42
 
30
43
  def protocols
data/lib/has_mbean.rb CHANGED
@@ -42,6 +42,10 @@ module Backstage
42
42
  rescue NoMethodError => ex
43
43
  super
44
44
  end
45
+
46
+ def mbean_info
47
+ self.class.mbean_info( mbean_name )
48
+ end
45
49
 
46
50
  module ClassMethods
47
51
  def jmx_server
@@ -59,6 +63,10 @@ module Backstage
59
63
  nil
60
64
  end
61
65
 
66
+ def mbean_info(name)
67
+ name = ObjectName.new( name ) unless name.is_a?( ObjectName )
68
+ name.info( jmx_server.server )
69
+ end
62
70
  end
63
71
  end
64
72
  end
data/lib/helpers.rb CHANGED
@@ -24,7 +24,7 @@ module Backstage
24
24
  end
25
25
 
26
26
  def self.jboss_app_name
27
- App.find( "torquebox.apps:app=torquebox-backstage" ) ? 'torquebox-backstage' : 'backstage'
27
+ App.find( "torquebox.apps:name=torquebox-backstage" ) ? 'torquebox-backstage' : 'backstage'
28
28
  end
29
29
 
30
30
  def self.logger
@@ -196,43 +196,32 @@ module Backstage
196
196
 
197
197
  def torquebox_version_info
198
198
  versions = []
199
- torquebox = JMX::MBeanServer.new[javax.management.ObjectName.new( 'torquebox:type=system' )]
199
+ torquebox = JMX::MBeanServer.new[javax.management.ObjectName.new( 'torquebox:type=version' )]
200
200
  versions << ['Version', torquebox.version]
201
201
  versions << ['Build Number', torquebox.build_number]
202
202
  versions << ['Revision', torquebox.revision]
203
203
  versions
204
204
  end
205
205
 
206
- def hornetq_version_info
207
- versions = []
208
- hornetq = JMX::MBeanServer.new[javax.management.ObjectName.new( 'org.hornetq:module=Core,type=Server' )]
209
- versions << ['Version', hornetq.version]
210
- versions << ['Clustered', hornetq.clustered]
211
- versions
206
+ def component_version_info
207
+ versions = { }
208
+ torquebox = JMX::MBeanServer.new[javax.management.ObjectName.new( 'torquebox:type=version' )]
209
+ torquebox.component_names.each do |name|
210
+ versions[name] = torquebox.getComponentBuildInfo( name ) unless name == 'TorqueBox'
211
+ end
212
+ augment_version_data( versions )
212
213
  end
213
214
 
214
- def jboss_version_info
215
- versions = []
216
- jboss = JMX::MBeanServer.new[javax.management.ObjectName.new( 'jboss.system:type=Server' )]
217
- versions << ['Version', jboss.version]
218
- versions
215
+ def augment_version_data( versions )
216
+ augment_hornetq_version( versions )
219
217
  end
220
218
 
221
- def infinispan_version_info
222
- versions = []
223
- infinispan = JMX::MBeanServer.new
224
- cm = nil # JMX::MBeans::Org::Infinispan::Manager::DefaultCacheManager
225
-
226
- infinispan.query_names( 'org.infinispan:component=CacheManager,name=*,type=CacheManager' ).collect {|name| cm = JMX::MBeanServer.new[ name ] }
227
-
228
- if cm
229
- versions << ['Version', cm.version ]
230
- else
231
- versions << ['Version', 'disabled']
232
- end
219
+ def augment_hornetq_version( versions )
220
+ hornetq = JMX::MBeanServer.new[javax.management.ObjectName.new( 'org.hornetq:module=Core,type=Server' )]
221
+ versions['HornetQ']['clustered'] = hornetq.clustered if versions['HornetQ'] && hornetq
233
222
  versions
234
223
  end
235
-
224
+
236
225
  def hornetq_cluster_info
237
226
  info = []
238
227
  ccc = nil # JMX::MBeans::Org::Hornetq::Core::Management::Impl::ClusterConnectionControlImpl
@@ -253,14 +242,6 @@ module Backstage
253
242
  info
254
243
  end
255
244
 
256
- #def jgroups_cluster_channels
257
- # mux_channels = []
258
- # jgroups = JMX::MBeanServer.new
259
-
260
- # find the name of the jgroups channels
261
- # jgroups.query_names( 'jboss.jgroups:cluster=*,type=channel' ).collect {|name| mux_channels << JMX::MBeanServer.new[ name ] }
262
- # mux_channels
263
- #end
264
245
  end
265
246
  end
266
247
  end
@@ -27,6 +27,13 @@ module Backstage
27
27
  def self.to_hash_attributes
28
28
  super + [:name, :app, :app_name, :status, :destination_name, :message_selector, :concurrency]
29
29
  end
30
+
31
+ def name
32
+ name = super
33
+ name = $2 if name =~ %r{(/.*)*\.(.*)}
34
+ name = $1 if name =~ %r{TorqueBox::Messaging::(.*)}
35
+ name
36
+ end
30
37
 
31
38
  def destination_name
32
39
  name = super
@@ -28,10 +28,6 @@ module Backstage
28
28
  super + [:name, :app, :app_name, :pool_type, :size, :available, :borrowed, :minimum_instances, :maximum_instances]
29
29
  end
30
30
 
31
- def pool_type
32
- full_name =~ /type=(.*?)(,|$)/ ? $1 : ''
33
- end
34
-
35
31
  def size
36
32
  shared? ? 1 : mbean.size
37
33
  end
@@ -42,6 +38,10 @@ module Backstage
42
38
  end
43
39
  end
44
40
 
41
+ def pool_type
42
+ mbean_info.getClassName =~ /Shared/ ? 'shared' : 'default'
43
+ end
44
+
45
45
  def shared?
46
46
  pool_type == 'shared'
47
47
  end
@@ -50,7 +50,6 @@ module Backstage
50
50
  send_args << params if object.respond_to?( action ) && object.method( action ).arity == 1
51
51
  action_response = object.__send__( *send_args )
52
52
  if html_requested?
53
- flash[:notice] = "'#{action}' called on #{simple_class_name( object ).humanize} #{object.name}"
54
53
  redirect_to object_path( object )
55
54
  else
56
55
  content_type :json
@@ -26,7 +26,7 @@ module Backstage
26
26
  end
27
27
 
28
28
  def app
29
- App.find( "torquebox.apps:app=#{app_name}" )
29
+ App.find( "torquebox.apps:name=#{app_name}" )
30
30
  end
31
31
 
32
32
  def status
data/views/css/style.sass CHANGED
@@ -60,15 +60,6 @@ body
60
60
  @include rounded-corners(3px)
61
61
  text-decoration: none
62
62
  background-color: $highlight_color
63
-
64
- #flash
65
- @include rounded-corners
66
- border: 1px solid $border_color
67
- padding: 0.5em
68
- margin-bottom: 0.5em
69
- color: black
70
- background-color: $highlight_color
71
- font-weight: bold
72
63
 
73
64
  #footer
74
65
  margin: 30px 0
@@ -16,29 +16,14 @@
16
16
  - torquebox_version_info.each do |key, value|
17
17
  - unless value.blank?
18
18
  %li== #{key}: #{value}
19
- %li
20
- JBoss:
21
- %ul
22
- - jboss_version_info.each do |key, value|
23
- - unless value.blank?
24
- %li== #{key}: #{value}
25
- %li
26
- HornetQ:
27
- %ul
28
- - hornetq_version_info.each do |key, value|
29
- - unless value.blank?
30
- %li== #{key}: #{value}
31
- %li
32
- Infinispan:
33
- %ul
34
- - infinispan_version_info.each do |key, value|
35
- - unless value.blank?
36
- %li== #{key}: #{value}
37
- /
19
+
20
+ - component_version_info.each do |name, data|
38
21
  %li
39
- Quartz:
40
- %ul
41
- %li== Version: ???
22
+ == #{name}:
23
+ %ul
24
+ - data.each do |key, value|
25
+ - unless value.blank?
26
+ %li== #{key.humanize}: #{value}
42
27
 
43
28
  #cluster_properties.list
44
29
  %h3 HornetQ Cluster
@@ -7,8 +7,8 @@
7
7
  %th Open
8
8
  %th Connected
9
9
  %th Address
10
- %th NumMessages
11
- %th ReceiveLocalMsgs
10
+ %th SentMessages
11
+ %th SentBytes
12
12
  %th View
13
13
  %th
14
14
  - @collection.each do |group|
@@ -19,6 +19,6 @@
19
19
  %td= group.open
20
20
  %td= group.connected
21
21
  %td= group.address
22
- %td= group.num_messages
23
- %td= group.receive_local_msgs
22
+ %td= group.sent_messages
23
+ %td= group.sent_bytes
24
24
  %td= group.view
@@ -3,7 +3,7 @@
3
3
  == JGroups: #{@object.cluster_name}
4
4
 
5
5
  %table.data-table
6
- - %w{ name received_messages received_bytes connected num_messages receive_local_msgs view address sent_bytes sent_messages timer_threads receive_blocks number_of_tasks_in_timer stats version }.each do |method|
6
+ - %w{ name received_messages received_bytes connected sent_messages sent_bytes view address timer_threads number_of_tasks_in_timer stats version }.each do |method|
7
7
  = data_row( method.humanize, @object.send( method ) )
8
8
 
9
9
  - @object.protocols.each do |protocol|
data/views/layout.haml CHANGED
@@ -20,9 +20,6 @@
20
20
  = link_to collection_path( :caches ), 'Caches', :class => 'caches'
21
21
  = link_to collection_path( :groups ), 'JGroups', :class => 'groups'
22
22
  #content-wrapper
23
- - if flash_msg = flash[:notice]
24
- #flash
25
- = flash_msg
26
23
  #content
27
24
  = yield
28
25
  #footer
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: torquebox-backstage
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.5.4
4
+ prerelease: 6
5
+ version: 1.0.0.beta1
6
6
  platform: ruby
7
7
  authors:
8
8
  - Tobias Crawley
@@ -12,8 +12,7 @@ autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
14
 
15
- date: 2011-09-27 00:00:00 -04:00
16
- default_executable:
15
+ date: 2012-01-10 00:00:00 Z
17
16
  dependencies:
18
17
  - !ruby/object:Gem::Dependency
19
18
  name: sinatra
@@ -27,159 +26,148 @@ dependencies:
27
26
  type: :runtime
28
27
  version_requirements: *id001
29
28
  - !ruby/object:Gem::Dependency
30
- name: rack-flash
29
+ name: haml
31
30
  prerelease: false
32
31
  requirement: &id002 !ruby/object:Gem::Requirement
33
32
  none: false
34
33
  requirements:
35
- - - "="
34
+ - - ~>
36
35
  - !ruby/object:Gem::Version
37
- version: 0.1.1
36
+ version: "3.0"
38
37
  type: :runtime
39
38
  version_requirements: *id002
40
39
  - !ruby/object:Gem::Dependency
41
- name: haml
40
+ name: sass
42
41
  prerelease: false
43
42
  requirement: &id003 !ruby/object:Gem::Requirement
44
43
  none: false
45
44
  requirements:
46
- - - "="
45
+ - - ~>
47
46
  - !ruby/object:Gem::Version
48
- version: 3.1.1
47
+ version: 3.1.2
49
48
  type: :runtime
50
49
  version_requirements: *id003
51
50
  - !ruby/object:Gem::Dependency
52
- name: sass
51
+ name: tobias-jmx
53
52
  prerelease: false
54
53
  requirement: &id004 !ruby/object:Gem::Requirement
55
54
  none: false
56
55
  requirements:
57
56
  - - "="
58
57
  - !ruby/object:Gem::Version
59
- version: 3.1.2
58
+ version: "0.8"
60
59
  type: :runtime
61
60
  version_requirements: *id004
62
61
  - !ruby/object:Gem::Dependency
63
- name: tobias-jmx
62
+ name: json
64
63
  prerelease: false
65
64
  requirement: &id005 !ruby/object:Gem::Requirement
66
65
  none: false
67
66
  requirements:
68
67
  - - "="
69
68
  - !ruby/object:Gem::Version
70
- version: "0.8"
69
+ version: 1.5.1
71
70
  type: :runtime
72
71
  version_requirements: *id005
73
72
  - !ruby/object:Gem::Dependency
74
- name: json
73
+ name: torquebox
75
74
  prerelease: false
76
75
  requirement: &id006 !ruby/object:Gem::Requirement
77
76
  none: false
78
77
  requirements:
79
- - - "="
78
+ - - ~>
80
79
  - !ruby/object:Gem::Version
81
- version: 1.5.1
80
+ version: 2.0.0.beta
82
81
  type: :runtime
83
82
  version_requirements: *id006
84
83
  - !ruby/object:Gem::Dependency
85
- name: torquebox
84
+ name: tobias-sinatra-url-for
86
85
  prerelease: false
87
86
  requirement: &id007 !ruby/object:Gem::Requirement
88
87
  none: false
89
88
  requirements:
90
89
  - - "="
91
90
  - !ruby/object:Gem::Version
92
- version: 1.1.1
91
+ version: 0.2.1
93
92
  type: :runtime
94
93
  version_requirements: *id007
95
94
  - !ruby/object:Gem::Dependency
96
- name: tobias-sinatra-url-for
95
+ name: rack-accept
97
96
  prerelease: false
98
97
  requirement: &id008 !ruby/object:Gem::Requirement
99
98
  none: false
100
99
  requirements:
101
- - - "="
100
+ - - ~>
102
101
  - !ruby/object:Gem::Version
103
- version: 0.2.1
102
+ version: 0.4.4
104
103
  type: :runtime
105
104
  version_requirements: *id008
106
105
  - !ruby/object:Gem::Dependency
107
- name: rack-accept
106
+ name: thor
108
107
  prerelease: false
109
108
  requirement: &id009 !ruby/object:Gem::Requirement
110
109
  none: false
111
110
  requirements:
112
111
  - - "="
113
112
  - !ruby/object:Gem::Version
114
- version: 0.4.4
113
+ version: 0.14.6
115
114
  type: :runtime
116
115
  version_requirements: *id009
117
116
  - !ruby/object:Gem::Dependency
118
- name: thor
117
+ name: bundler
119
118
  prerelease: false
120
119
  requirement: &id010 !ruby/object:Gem::Requirement
121
120
  none: false
122
121
  requirements:
123
- - - "="
122
+ - - ~>
124
123
  - !ruby/object:Gem::Version
125
- version: 0.14.6
126
- type: :development
124
+ version: 1.0.12
125
+ type: :runtime
127
126
  version_requirements: *id010
128
127
  - !ruby/object:Gem::Dependency
129
- name: watchr
128
+ name: thor
130
129
  prerelease: false
131
130
  requirement: &id011 !ruby/object:Gem::Requirement
132
131
  none: false
133
132
  requirements:
134
- - - ~>
133
+ - - "="
135
134
  - !ruby/object:Gem::Version
136
- version: "0.7"
135
+ version: 0.14.6
137
136
  type: :development
138
137
  version_requirements: *id011
139
138
  - !ruby/object:Gem::Dependency
140
- name: rspec
139
+ name: watchr
141
140
  prerelease: false
142
141
  requirement: &id012 !ruby/object:Gem::Requirement
143
142
  none: false
144
143
  requirements:
145
144
  - - ~>
146
145
  - !ruby/object:Gem::Version
147
- version: 2.6.0
146
+ version: "0.7"
148
147
  type: :development
149
148
  version_requirements: *id012
150
149
  - !ruby/object:Gem::Dependency
151
- name: rack-test
150
+ name: rspec
152
151
  prerelease: false
153
152
  requirement: &id013 !ruby/object:Gem::Requirement
154
153
  none: false
155
154
  requirements:
156
155
  - - ~>
157
156
  - !ruby/object:Gem::Version
158
- version: 0.6.0
157
+ version: 2.6.0
159
158
  type: :development
160
159
  version_requirements: *id013
161
160
  - !ruby/object:Gem::Dependency
162
- name: thor
161
+ name: rack-test
163
162
  prerelease: false
164
163
  requirement: &id014 !ruby/object:Gem::Requirement
165
164
  none: false
166
165
  requirements:
167
- - - "="
166
+ - - ~>
168
167
  - !ruby/object:Gem::Version
169
- version: 0.14.6
170
- type: :runtime
168
+ version: 0.6.0
169
+ type: :development
171
170
  version_requirements: *id014
172
- - !ruby/object:Gem::Dependency
173
- name: bundler
174
- prerelease: false
175
- requirement: &id015 !ruby/object:Gem::Requirement
176
- none: false
177
- requirements:
178
- - - "="
179
- - !ruby/object:Gem::Version
180
- version: 1.0.12
181
- type: :runtime
182
- version_requirements: *id015
183
171
  description: BackStage allows you to look behind the TorqueBox curtain, and view information about all of the components you have running. It includes support for remote code execution and log tailing to aid in debugging.
184
172
  email: tcrawley@redhat.com
185
173
  executables:
@@ -270,7 +258,6 @@ files:
270
258
  - views/services/index.haml
271
259
  - views/services/show.haml
272
260
  - bin/backstage
273
- has_rdoc: true
274
261
  homepage: http://github.com/torquebox/backstage
275
262
  licenses:
276
263
  - AL
@@ -294,7 +281,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
294
281
  requirements: []
295
282
 
296
283
  rubyforge_project:
297
- rubygems_version: 1.5.1
284
+ rubygems_version: 1.8.9
298
285
  signing_key:
299
286
  specification_version: 3
300
287
  summary: BackStage - Queue/Topic/Job/etc viewer for TorqueBox