torquebox-backstage 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/lib/logs.rb ADDED
@@ -0,0 +1,18 @@
1
+ #
2
+ # Copyright 2011 Red Hat, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+
17
+ require 'logs/models/log'
18
+ require 'logs/routes'
@@ -0,0 +1,81 @@
1
+ #
2
+ # Copyright 2011 Red Hat, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by loglicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+
17
+ module Backstage
18
+ class Log
19
+ include Resource
20
+
21
+ attr_reader :file_path
22
+
23
+ LOG_GLOB = "*log"
24
+
25
+ class << self
26
+ def to_hash_attributes
27
+ super + [:name, :file_path, :size]
28
+ end
29
+
30
+ def all(log_dir = nil)
31
+ log_dir ||= Backstage.jboss_log_dir
32
+ Dir.glob("#{log_dir}/#{LOG_GLOB}").collect do |path|
33
+ Log.new( File.expand_path( path ) )
34
+ end.sort_by(&:name)
35
+ end
36
+
37
+ alias_method :find, :new
38
+ end
39
+
40
+ def initialize(file_path)
41
+ @file_path = file_path
42
+ end
43
+
44
+ alias_method :full_name, :file_path
45
+
46
+ def name
47
+ File.basename( file_path )
48
+ end
49
+
50
+ def size
51
+ File.size( file_path )
52
+ end
53
+
54
+ def tail(options)
55
+ offset = (options['offset'] || -1000).to_i
56
+ File.open(@file_path, 'r') do |file|
57
+ # Set offset to the beginning or end of the file if
58
+ # the value passed in is less than or greather than
59
+ # the min/max allowed
60
+ if offset.abs > file.stat.size
61
+ offset = offset < 0 ? 0 : file.stat.size
62
+ end
63
+
64
+ if offset < 0
65
+ file.seek(offset, IO::SEEK_END)
66
+ file.readline # Advance to the next entire line
67
+ else
68
+ file.seek(offset)
69
+ end
70
+ lines = []
71
+ until file.eof? do
72
+ lines << file.readline
73
+ end
74
+ offset = file.pos
75
+ { :offset => offset, :lines => lines.compact }
76
+ end
77
+ end
78
+
79
+ end
80
+ end
81
+
@@ -0,0 +1,18 @@
1
+ #
2
+ # Copyright 2011 Red Hat, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+
17
+ Backstage::Application.resource :log, :actions => [:tail]
18
+
@@ -33,6 +33,16 @@ module Backstage
33
33
  name =~ /\[(.*)\]/ ? $1 : name
34
34
  end
35
35
 
36
+ def start
37
+ super
38
+ self
39
+ end
40
+
41
+ def stop
42
+ super
43
+ self
44
+ end
45
+
36
46
  def available_actions
37
47
  status == 'Started' ? %w{ stop } : %w{ start }
38
48
  end
@@ -46,13 +46,15 @@ module Backstage
46
46
  (options[:actions] || []).each do |action|
47
47
  post "/#{resource}/:name/#{action}" do
48
48
  object = klass.find( Util.decode_name( params[:name] ) )
49
- object.__send__( action )
49
+ send_args = [action]
50
+ send_args << params if object.respond_to?( action ) && object.method( action ).arity == 1
51
+ action_response = object.__send__( *send_args )
50
52
  if html_requested?
51
53
  flash[:notice] = "'#{action}' called on #{simple_class_name( object ).humanize} #{object.name}"
52
54
  redirect_to object_path( object )
53
55
  else
54
56
  content_type :json
55
- object_to_json( object )
57
+ object_to_json( action_response )
56
58
  end
57
59
  end
58
60
 
@@ -28,6 +28,16 @@ module Backstage
28
28
  super + [:name, :app, :app_name, :ruby_class_name, :status, :cron_expression]
29
29
  end
30
30
 
31
+ def start
32
+ super
33
+ self
34
+ end
35
+
36
+ def stop
37
+ super
38
+ self
39
+ end
40
+
31
41
  def available_actions
32
42
  status == 'Started' ? %w{stop} : %w{start}
33
43
  end
@@ -28,6 +28,16 @@ module Backstage
28
28
  super + [:name, :app, :app_name, :status]
29
29
  end
30
30
 
31
+ def start
32
+ super
33
+ self
34
+ end
35
+
36
+ def stop
37
+ super
38
+ self
39
+ end
40
+
31
41
  def available_actions
32
42
  status == 'Started' ? %w{ stop } : %w{ start' }
33
43
  end
data/spec/api_spec.rb CHANGED
@@ -34,7 +34,7 @@ module Backstage
34
34
  end
35
35
 
36
36
  it "should contain a hash of collection urls" do
37
- collections = [:apps, :queues, :topics, :message_processors, :jobs, :services, :pools]
37
+ collections = [:apps, :queues, :topics, :message_processors, :jobs, :services, :pools, :logs]
38
38
  @response[:collections].keys.should =~ collections
39
39
  collections.each do |collection|
40
40
  @response[:collections][collection].should =~ %r{^http://example.org/#{collection}\?format=json$}
@@ -74,7 +74,7 @@ module Backstage
74
74
  end
75
75
  end
76
76
 
77
- %w{ app queue topic job message_processor service pool }.each do |resource|
77
+ %w{ app queue topic job message_processor service pool log }.each do |resource|
78
78
  klass = "backstage/#{resource}".constantize
79
79
  describe resource do
80
80
  it "should have hash attributes beyond :resource" do
data/spec/app_spec.rb ADDED
@@ -0,0 +1,59 @@
1
+ #
2
+ # Copyright 2011 Red Hat, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+
17
+ require 'spec_helper'
18
+
19
+ module Backstage
20
+
21
+ describe 'App' do
22
+ before(:each) do
23
+ @app = App.new("app", nil)
24
+ @app_root_path = File.join( TEST_ROOT, 'app' )
25
+ @app.stub( :root_path ).and_return( @app_root_path )
26
+ @log = Log.new(nil)
27
+ end
28
+
29
+ describe "logs" do
30
+ it "should call all on Log" do
31
+ Log.should_receive(:all).with( File.join( @app_root_path, 'log' ) ).and_return([@log])
32
+ @app.logs
33
+ end
34
+
35
+ it "should set the parent on each log" do
36
+ Log.stub(:all).and_return([@log])
37
+ @log.should_receive(:parent=).with(@app)
38
+ @app.logs
39
+ end
40
+ end
41
+
42
+ describe 'has_logs?' do
43
+ before(:each) do
44
+ @log_dir = File.join( @app_root_path, 'log' )
45
+ @app.stub( :log_dir ).and_return( @log_dir )
46
+ end
47
+ it "should be true if a log/ dir exists" do
48
+ File.should_receive(:directory?).with( @log_dir ).and_return( true )
49
+ @app.has_logs?.should be_true
50
+ end
51
+
52
+ it "should not be true if a log/ dir does not exist" do
53
+ File.should_receive(:directory?).with( @log_dir ).and_return( false )
54
+ @app.has_logs?.should_not be_true
55
+ end
56
+
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,177 @@
1
+ 12:38:58,971 INFO [AbstractJBossASServerBase] Server Configuration:
2
+
3
+ JBOSS_HOME URL: file:/Users/tobias/work/torquebox/integration-tests/target/integ-dist/jboss/
4
+ Bootstrap: $JBOSS_HOME/server/default/conf/bootstrap.xml
5
+ Common Base: $JBOSS_HOME/common/
6
+ Common Library: $JBOSS_HOME/common/lib/
7
+ Server Name: default
8
+ Server Base: $JBOSS_HOME/server/
9
+ Server Library: $JBOSS_HOME/server/default/lib/
10
+ Server Config: $JBOSS_HOME/server/default/conf/
11
+ Server Home: $JBOSS_HOME/server/default/
12
+ Server Data: $JBOSS_HOME/server/default/data/
13
+ Server Log: $JBOSS_HOME/server/default/log/
14
+ Server Temp: $JBOSS_HOME/server/default/tmp/
15
+
16
+ 12:38:58,974 INFO [AbstractServer] Starting: JBossAS [6.0.0.Final "Neo"]
17
+ 12:39:00,295 INFO [ServerInfo] Java version: 1.6.0_24,Apple Inc.
18
+ 12:39:00,295 INFO [ServerInfo] Java Runtime: Java(TM) SE Runtime Environment (build 1.6.0_24-b07-334)
19
+ 12:39:00,295 INFO [ServerInfo] Java VM: Java HotSpot(TM) 64-Bit Server VM 19.1-b02-334,Apple Inc.
20
+ 12:39:00,296 INFO [ServerInfo] OS-System: Mac OS X 10.6.7,x86_64
21
+ 12:39:00,296 INFO [ServerInfo] VM arguments: -Xmx1024m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSClassUnloadingEnabled -Djruby_home.env.ignore=true -Dgem.path=default -Djbosstest.udp.ip_ttl=0 -Djava.endorsed.dirs=/Users/tobias/work/torquebox/integration-tests/target/integ-dist/jboss/lib/endorsed -Djboss.server.log.threshold=DEBUG -Djava.endorsed.dirs=/Users/tobias/work/torquebox/integration-tests/target/integ-dist/jboss/lib/endorsed/ -Dxb.builder.useUnorderedSequence=true
22
+ 12:39:00,331 INFO [JMXKernel] Legacy JMX core initialized
23
+ 12:39:04,270 INFO [AbstractServerConfig] JBoss Web Services - Stack CXF Server 3.4.1.GA
24
+ 12:39:04,670 INFO [JSFImplManagementDeployer] Initialized 3 JSF configurations: [Mojarra-1.2, MyFaces-2.0, Mojarra-2.0]
25
+ 12:39:04,829 INFO [Bootstrap] Bootstrapping TorqueBox AS
26
+ 12:39:04,830 INFO [Bootstrap] Using JRuby: "/Users/tobias/work/torquebox/integration-tests/target/integ-dist/jruby"
27
+ 12:39:05,441 INFO [MCBeanInjectableHandler] Starting
28
+ 12:39:05,445 INFO [InjectableHandlerRegistry] Registering injectable handler: mc - org.torquebox.injection.mc.MCBeanInjectableHandler@7ced5732
29
+ 12:39:08,265 INFO [RubyRuntimeFactoryImpl] Creating ruby runtime (ruby_version: RUBY1_8, compile_mode: JIT, context: torquebox.global)
30
+ 12:39:11,137 WARN [RubyRuntimeFactoryImpl] No initializer set for runtime
31
+ 12:39:11,148 INFO [RubyRuntimeFactoryImpl] Created ruby runtime (ruby_version: RUBY1_8, compile_mode: JIT, context: torquebox.global) in 2.88s
32
+ 12:39:11,148 INFO [TorqueBox] Welcome to TorqueBox AS - http://torquebox.org/
33
+ 12:39:11,149 INFO [TorqueBox] version...... 1.0.0.CR2-SNAPSHOT
34
+ 12:39:11,149 INFO [TorqueBox] build........ development (tobias)
35
+ 12:39:11,149 INFO [TorqueBox] revision..... e279d5ba494c191af7ba0ad3742bf3b4322f3830
36
+ 12:39:11,149 INFO [TorqueBox] jruby.home... /Users/tobias/work/torquebox/integration-tests/target/integ-dist/jruby
37
+ 12:39:11,149 INFO [JNDIInjectableHandler] Starting
38
+ 12:39:11,149 INFO [CDIInjectableHandler] Starting
39
+ 12:39:11,150 INFO [InjectableHandlerRegistry] Registering injectable handler: jndi - org.torquebox.injection.jndi.JNDIInjectableHandler@798fe5a1
40
+ 12:39:11,150 INFO [InjectableHandlerRegistry] Registering injectable handler: cdi - org.torquebox.injection.cdi.CDIInjectableHandler@562ceb60
41
+ 12:39:11,153 INFO [AppsDirectoryBootstrapper] Adding deployment directory: /Users/tobias/work/torquebox/integration-tests/target/integ-dist/apps
42
+ 12:39:11,172 INFO [DestinationInjectableHandler] Starting
43
+ 12:39:11,172 INFO [InjectableHandlerRegistry] Registering injectable handler: queue - org.torquebox.messaging.injection.DestinationInjectableHandler@1feb551
44
+ 12:39:11,173 INFO [DestinationInjectableHandler] Starting
45
+ 12:39:11,173 INFO [InjectableHandlerRegistry] Registering injectable handler: topic - org.torquebox.messaging.injection.DestinationInjectableHandler@5123027e
46
+ 12:39:13,261 WARNING [FileConfigurationParser] AIO wasn't located on this platform, it will fall back to using pure Java NIO. If your platform is Linux, install LibAIO to enable the AIO journal
47
+ 12:39:15,332 WARNING [FileConfigurationParser] AIO wasn't located on this platform, it will fall back to using pure Java NIO. If your platform is Linux, install LibAIO to enable the AIO journal
48
+ 12:39:15,474 INFO [JMXConnector] starting JMXConnector on host 127.0.0.1:1090
49
+ 12:39:15,555 INFO [MailService] Mail Service bound to java:/Mail
50
+ 12:39:16,147 INFO [HornetQServerImpl] live server is starting..
51
+ 12:39:16,202 INFO [JournalStorageManager] Using NIO Journal
52
+ 12:39:16,219 WARNING [HornetQServerImpl] Security risk! It has been detected that the cluster admin user and password have not been changed from the installation default. Please see the HornetQ user guide, cluster chapter, for instructions on how to do this.
53
+ 12:39:16,634 INFO [NettyAcceptor] Started Netty Acceptor version 3.2.1.Final-r2319 127.0.0.1:5455 for CORE protocol
54
+ 12:39:16,635 INFO [NettyAcceptor] Started Netty Acceptor version 3.2.1.Final-r2319 127.0.0.1:5445 for CORE protocol
55
+ 12:39:16,638 INFO [HornetQServerImpl] HornetQ Server version 2.1.2.Final (Colmeia, 120) started
56
+ 12:39:16,685 INFO [WebService] Using RMI server codebase: http://127.0.0.1:8083/
57
+ 12:39:16,862 INFO [jbossatx] ARJUNA-32010 JBossTS Recovery Service (tag: JBOSSTS_4_14_0_Final) - JBoss Inc.
58
+ 12:39:16,867 INFO [arjuna] ARJUNA-12324 Start RecoveryActivators
59
+ 12:39:16,883 INFO [arjuna] ARJUNA-12296 ExpiredEntryMonitor running at Mon, 25 Apr 2011 12:39:16
60
+ 12:39:16,937 INFO [arjuna] ARJUNA-12310 Recovery manager listening on endpoint 127.0.0.1:4712
61
+ 12:39:16,938 INFO [arjuna] ARJUNA-12344 RecoveryManagerImple is ready on port 4712
62
+ 12:39:16,939 INFO [jbossatx] ARJUNA-32013 Starting transaction recovery manager
63
+ 12:39:16,952 INFO [arjuna] ARJUNA-12163 Starting service com.arjuna.ats.arjuna.recovery.ActionStatusService on port 4713
64
+ 12:39:16,953 INFO [arjuna] ARJUNA-12337 TransactionStatusManagerItem host: 127.0.0.1 port: 4713
65
+ 12:39:16,954 INFO [arjuna] ARJUNA-12170 TransactionStatusManager started on port 4713 and host 127.0.0.1 with service com.arjuna.ats.arjuna.recovery.ActionStatusService
66
+ 12:39:16,992 INFO [jbossatx] ARJUNA-32017 JBossTS Transaction Service (JTA version - tag: JBOSSTS_4_14_0_Final) - JBoss Inc.
67
+ 12:39:17,035 INFO [arjuna] ARJUNA-12202 registering bean jboss.jta:type=ObjectStore.
68
+ 12:39:17,237 INFO [AprLifecycleListener] The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
69
+ 12:39:17,360 INFO [TomcatDeployment] deploy, ctxPath=/invoker
70
+ 12:39:17,600 INFO [ModClusterService] Initializing mod_cluster 1.1.0.Final
71
+ 12:39:17,635 INFO [RARDeployment] Required license terms exist, view vfs:/Users/tobias/work/torquebox/integration-tests/target/integ-dist/jboss/server/default/deploy/jboss-local-jdbc.rar/META-INF/ra.xml
72
+ 12:39:17,644 INFO [RARDeployment] Required license terms exist, view vfs:/Users/tobias/work/torquebox/integration-tests/target/integ-dist/jboss/server/default/deploy/jboss-xa-jdbc.rar/META-INF/ra.xml
73
+ 12:39:17,680 INFO [RARDeployment] Required license terms exist, view vfs:/Users/tobias/work/torquebox/integration-tests/target/integ-dist/jboss/server/default/deploy/jms-ra.rar/META-INF/ra.xml
74
+ 12:39:17,693 INFO [HornetQResourceAdapter] HornetQ resource adaptor started
75
+ 12:39:17,699 INFO [RARDeployment] Required license terms exist, view vfs:/Users/tobias/work/torquebox/integration-tests/target/integ-dist/jboss/server/default/deploy/mail-ra.rar/META-INF/ra.xml
76
+ 12:39:17,710 INFO [RARDeployment] Required license terms exist, view vfs:/Users/tobias/work/torquebox/integration-tests/target/integ-dist/jboss/server/default/deploy/quartz-ra.rar/META-INF/ra.xml
77
+ 12:39:17,786 INFO [SimpleThreadPool] Job execution threads will use class loader of thread: Thread-3
78
+ 12:39:17,819 INFO [SchedulerSignalerImpl] Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl
79
+ 12:39:17,819 INFO [QuartzScheduler] Quartz Scheduler v.1.8.3 created.
80
+ 12:39:17,821 INFO [RAMJobStore] RAMJobStore initialized.
81
+ 12:39:17,823 INFO [QuartzScheduler] Scheduler meta-data: Quartz Scheduler (v1.8.3) 'JBossQuartzScheduler' with instanceId 'NON_CLUSTERED'
82
+ Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.
83
+ NOT STARTED.
84
+ Currently in standby mode.
85
+ Number of jobs executed: 0
86
+ Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 10 threads.
87
+ Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persistence. and is not clustered.
88
+
89
+ 12:39:17,823 INFO [StdSchedulerFactory] Quartz scheduler 'JBossQuartzScheduler' initialized from an externally opened InputStream.
90
+ 12:39:17,823 INFO [StdSchedulerFactory] Quartz scheduler version: 1.8.3
91
+ 12:39:17,823 INFO [QuartzScheduler] Scheduler JBossQuartzScheduler_$_NON_CLUSTERED started.
92
+ 12:39:18,132 INFO [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=DefaultDS' to JNDI name 'java:DefaultDS'
93
+ 12:39:18,306 INFO [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=ConnectionFactoryBinding,name=JmsXA' to JNDI name 'java:JmsXA'
94
+ 12:39:18,424 INFO [xnio] XNIO Version 2.1.0.CR2
95
+ 12:39:18,431 INFO [nio] XNIO NIO Implementation Version 2.1.0.CR2
96
+ 12:39:18,606 INFO [remoting] JBoss Remoting version 3.1.0.Beta2
97
+ 12:39:18,692 INFO [TomcatDeployment] deploy, ctxPath=/
98
+ 12:39:18,728 INFO [service] Removing bootstrap log handlers
99
+ 12:39:18,784 INFO [org.torquebox.bootstrap.AppsDirectoryNotificationListener] Activating deployments dir
100
+ 12:39:18,805 INFO [org.apache.coyote.http11.Http11Protocol] Starting Coyote HTTP/1.1 on http-127.0.0.1-8080
101
+ 12:39:18,810 INFO [org.apache.coyote.ajp.AjpProtocol] Starting Coyote AJP/1.3 on ajp-127.0.0.1-8009
102
+ 12:39:18,811 INFO [org.jboss.bootstrap.impl.base.server.AbstractServer] JBossAS [6.0.0.Final "Neo"] Started in 19s:834ms
103
+ 12:39:19,170 INFO [org.jboss.deployment.MainDeployer] deploy, url=file:/Users/tobias/work/torquebox/integration-tests/basic-auth-knob.jar
104
+ 12:39:19,283 INFO [org.torquebox.mc.vdf.PojoDeployment] Deploying: basic-auth -- "/Users/tobias/work/torquebox/integration-tests/apps/rack/basic_auth"
105
+ 12:39:19,290 INFO [org.torquebox.base.deployers.AuthDefaultsDeployer] No authentication configuration provided for this application. Using defaults.
106
+ 12:39:19,290 INFO [org.torquebox.base.deployers.AuthDefaultsDeployer] Authentication Domain: torquebox-auth
107
+ 12:39:19,311 WARN [org.torquebox.interp.deployers.BaseRubyRuntimeDeployer] Ruby runtime already configured as RACK: AbstractVFSDeploymentContext@1357132739{basic-auth}
108
+ 12:39:19,438 INFO [org.torquebox.interp.deployers.RuntimePoolDeployer] Deploying runtime pool: [PoolMetaData: name=messaging min=1 max=2]
109
+ 12:39:19,442 INFO [org.torquebox.interp.deployers.RuntimePoolDeployer] Deploying runtime pool: [PoolMetaData: name=web type=SHARED]
110
+ 12:39:19,551 INFO [org.jboss.weld.Version] WELD-000900 1.1.0 (CR3)
111
+ 12:39:19,568 INFO [org.torquebox.interp.core.RubyRuntimeFactoryImpl] Creating ruby runtime (ruby_version: RUBY1_9, compile_mode: JIT, app: basic-auth, context: web)
112
+ 12:39:21,818 INFO [org.torquebox.interp.core.RubyRuntimeFactoryImpl] Created ruby runtime (ruby_version: RUBY1_9, compile_mode: JIT, app: basic-auth, context: web) in 2.25s
113
+ 12:39:21,866 INFO [org.torquebox.interp.core.RubyRuntimeFactoryImpl] Creating ruby runtime (ruby_version: RUBY1_9, compile_mode: JIT, app: basic-auth, context: messaging)
114
+ 12:39:23,346 INFO [org.torquebox.interp.core.RubyRuntimeFactoryImpl] Created ruby runtime (ruby_version: RUBY1_9, compile_mode: JIT, app: basic-auth, context: messaging) in 1.48s
115
+ 12:39:23,556 INFO [org.jboss.web.tomcat.service.deployers.TomcatDeployment] deploy, ctxPath=/basic-auth
116
+ 12:39:23,592 WARN [org.jboss.web.tomcat.service.deployers.JBossContextConfig] Failed to setup clustering, clustering disabled. ClusteringNotSupportedException: No DistributedCacheManagerFactory service provider found.
117
+ 12:39:24,093 INFO [org.torquebox.base.deployers.DeploymentNotifier] Fully deployed: basic-auth
118
+ 12:39:24,093 INFO [org.torquebox.mc.vdf.PojoDeployment] Fully deployed: "/Users/tobias/work/torquebox/integration-tests/apps/rack/basic_auth"
119
+ 12:39:25,408 INFO [STDOUT] {["rack.input", #<IO:0x00000000>]=>nil,
120
+ 12:39:25,409 INFO [STDOUT] ["rack.errors", #<IO:0x00000000>]=>nil,
121
+ 12:39:25,419 INFO [STDOUT] ["REQUEST_METHOD", "GET"]=>nil,
122
+ 12:39:25,423 INFO [STDOUT] ["SCRIPT_NAME", "/basic-auth"]=>nil,
123
+ 12:39:25,425 INFO [STDOUT] ["PATH_INFO", "/"]=>nil,
124
+ 12:39:25,427 INFO [STDOUT] ["QUERY_STRING", ""]=>nil,
125
+ 12:39:25,450 INFO [STDOUT] ["SERVER_NAME", "localhost"]=>nil,
126
+ 12:39:25,452 INFO [STDOUT] ["SERVER_PORT", "8080"]=>nil,
127
+ 12:39:25,454 INFO [STDOUT] ["CONTENT_TYPE", nil]=>nil,
128
+ 12:39:25,457 INFO [STDOUT] ["REQUEST_URI", "/basic-auth/"]=>nil,
129
+ 12:39:25,459 INFO [STDOUT] ["REMOTE_ADDR", "127.0.0.1"]=>nil,
130
+ 12:39:25,461 INFO [STDOUT] ["rack.url_scheme", "http"]=>nil,
131
+ 12:39:25,475 INFO [STDOUT] ["rack.version", [1, 1]]=>nil,
132
+ 12:39:25,477 INFO [STDOUT] ["rack.multithread", true]=>nil,
133
+ 12:39:25,479 INFO [STDOUT] ["rack.multiprocess", true]=>nil,
134
+ 12:39:25,480 INFO [STDOUT] ["rack.run_once", false]=>nil,
135
+ 12:39:25,485 INFO [STDOUT] ["HTTP_USER_AGENT", "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)"]=>
136
+ 12:39:25,485 INFO [STDOUT] nil,
137
+ 12:39:25,492 INFO [STDOUT] ["HTTP_ACCEPT_LANGUAGE", "en-us"]=>nil,
138
+ 12:39:25,494 INFO [STDOUT] ["HTTP_ACCEPT", "*/*"]=>nil,
139
+ 12:39:25,495 INFO [STDOUT] ["HTTP_HOST", "localhost:8080"]=>nil,
140
+ 12:39:25,497 INFO [STDOUT] ["HTTP_CONNECTION", "Keep-Alive"]=>nil,
141
+ 12:39:25,498 INFO [STDOUT] ["servlet_request",
142
+ 12:39:25,499 INFO [STDOUT] #<Java::OrgApacheCatalinaConnector::RequestFacade:0x626dac12>]=>nil,
143
+ 12:39:25,500 INFO [STDOUT] ["java.servlet_request",
144
+ 12:39:25,501 INFO [STDOUT] #<Java::OrgApacheCatalinaConnector::RequestFacade:0x626dac12>]=>nil}
145
+ 12:39:25,538 INFO [STDOUT] {["rack.input", #<IO:0x00000000>]=>nil,
146
+ 12:39:25,538 INFO [STDOUT] ["rack.errors", #<IO:0x00000000>]=>nil,
147
+ 12:39:25,540 INFO [STDOUT] ["REQUEST_METHOD", "GET"]=>nil,
148
+ 12:39:25,542 INFO [STDOUT] ["SCRIPT_NAME", "/basic-auth"]=>nil,
149
+ 12:39:25,543 INFO [STDOUT] ["PATH_INFO", "/"]=>nil,
150
+ 12:39:25,545 INFO [STDOUT] ["QUERY_STRING", ""]=>nil,
151
+ 12:39:25,546 INFO [STDOUT] ["SERVER_NAME", "localhost"]=>nil,
152
+ 12:39:25,548 INFO [STDOUT] ["SERVER_PORT", "8080"]=>nil,
153
+ 12:39:25,549 INFO [STDOUT] ["CONTENT_TYPE", nil]=>nil,
154
+ 12:39:25,551 INFO [STDOUT] ["REQUEST_URI", "/basic-auth/"]=>nil,
155
+ 12:39:25,552 INFO [STDOUT] ["REMOTE_ADDR", "127.0.0.1"]=>nil,
156
+ 12:39:25,554 INFO [STDOUT] ["rack.url_scheme", "http"]=>nil,
157
+ 12:39:25,556 INFO [STDOUT] ["rack.version", [1, 1]]=>nil,
158
+ 12:39:25,558 INFO [STDOUT] ["rack.multithread", true]=>nil,
159
+ 12:39:25,559 INFO [STDOUT] ["rack.multiprocess", true]=>nil,
160
+ 12:39:25,561 INFO [STDOUT] ["rack.run_once", false]=>nil,
161
+ 12:39:25,562 INFO [STDOUT] ["HTTP_USER_AGENT", "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)"]=>
162
+ 12:39:25,562 INFO [STDOUT] nil,
163
+ 12:39:25,564 INFO [STDOUT] ["HTTP_ACCEPT_LANGUAGE", "en-us"]=>nil,
164
+ 12:39:25,575 INFO [STDOUT] ["HTTP_ACCEPT", "*/*"]=>nil,
165
+ 12:39:25,576 INFO [STDOUT] ["HTTP_HOST", "localhost:8080"]=>nil,
166
+ 12:39:25,578 INFO [STDOUT] ["HTTP_CONNECTION", "Keep-Alive"]=>nil,
167
+ 12:39:25,580 INFO [STDOUT] ["HTTP_AUTHORIZATION", "Basic Ym1jd2hpcnRAcmVkaGF0LmNvbTpzd29yZGZpc2g="]=>nil,
168
+ 12:39:25,581 INFO [STDOUT] ["servlet_request",
169
+ 12:39:25,581 INFO [STDOUT] #<Java::OrgApacheCatalinaConnector::RequestFacade:0x626dac12>]=>nil,
170
+ 12:39:25,582 INFO [STDOUT] ["java.servlet_request",
171
+ 12:39:25,583 INFO [STDOUT] #<Java::OrgApacheCatalinaConnector::RequestFacade:0x626dac12>]=>nil}
172
+ 12:39:25,793 INFO [org.jboss.web.tomcat.service.deployers.TomcatDeployment] undeploy, ctxPath=/basic-auth
173
+ 12:39:25,997 INFO [org.jboss.system.server.jmx.JMXKernel] Server exit called, exiting the JVM now!
174
+ 12:39:25,998 INFO [STDOUT] Posting Shutdown Request to the server...
175
+ 12:39:25,999 INFO [org.jboss.bootstrap.impl.base.server.AbstractServer] Stopping: JBossAS [6.0.0.Final "Neo"]
176
+ 12:39:26,001 INFO [org.apache.coyote.http11.Http11Protocol] Pausing Coyote HTTP/1.1 on http-127.0.0.1-8080
177
+ 12:39:26,002 INFO [org.apache.coyo