JBoss.orgCommunity Documentation

TorqueBox

The Ruby Application Platform


1. What is TorqueBox?
1.1. Built upon JBoss AS
1.2. Built upon JRuby
1.3. Open-Source
1.4. The "application platform" concept
2. TorqueBox Installation
2.1. Distribution Variants
2.2. Getting Started Guide
2.3. Setting JVM Properties
2.4. Setting JRuby Properties
3. JBoss AS Crash Course
3.1. Configuring
3.2. Running
3.3. Deploying
3.4. Logging
3.4.1. TorqueBox::Logger
3.4.2. JBoss Logging Configuration
4. TorqueBox Application Deployment
4.1. Rake tasks
4.2. The torquebox command
4.3. Manual deployment
4.3.1. Deployment markers
4.3.2. Manually deploying with a descriptor
4.3.3. Manually deploying an archive
4.4. Zero Downtime Redeployment
5. TorqueBox Deployment Descriptors
5.1. External and Internal descriptors
5.2. Contents of a descriptor
5.2.1. YAML syntax layout
5.2.2. Ruby DSL syntax layout
5.2.3. General Application Configuration
5.2.4. Ruby runtime configuration
5.2.5. Environment variables
5.3. Java Deployment Descriptors
5.3.1. WEB-INF/web.xml
6. TorqueBox Web Applications
6.1. Performance
6.2. Deployment
6.3. Clustering
6.4. Configuration
6.5. Sessions
6.6. Caching
6.7. Rack
6.7.1. Rack Applications
6.7.2. Rack API
6.7.3. Sendfile support
6.8. Ruby on Rails
6.8.1. Ruby on Rails™ Applications
6.8.2. Rails 2.3.x versus 3.x
6.8.3. Preparing your Rails application
6.8.4. Rails Sessions Configuration
6.8.5. Rails Caching Configuration
6.8.6. Logging
6.9. Sinatra
6.9.1. Sinatra Sessions Configuration
6.9.2. Sinatra Caching Configuration
6.9.3. Logging
7. TorqueBox Caching
7.1. Overview
7.2. Clustering Modes
7.3. TorqueBox::Infinispan::Cache Options and Usage
7.4. ActiveSupport::Cache::TorqueBoxStore Options and Usage
8. TorqueBox Messaging
8.1. Introduction
8.2. Deploying Destinations
8.2.1. Deployment Styles
8.2.2. Deployment Descriptors
8.3. TorqueBox Ruby Classes
8.4. Messaging Abstractions
8.4.1. Queues and Topics
8.4.2. Publishing Messages
8.4.3. Receiving Messages
8.4.4. Destination management
8.4.5. Listing and looking up destinations
8.4.6. Synchronous Messaging
8.4.7. Message Encodings
8.4.8. Message Processors
8.4.9. Remote Message Processors
8.4.10. Backgroundable Methods
8.4.11. Future Objects
9. STOMP & WebSockets on TorqueBox
9.1. Overview
9.1.1. What is WebSockets?
9.1.2. What is STOMP?
9.1.3. What are Stomplets?
9.2. Ruby Stomplets
9.2.1. Stomplet API
9.2.2. Example
9.3. JMS Integration
9.3.1. Destination and Message compatibility
9.4. Deployment descriptors
9.5. Javascript Client
9.5.1. Using the Javascript client
9.5.2. Injecting the endpoint URL
9.6. Other Clients (without WebSockets)
9.7. Secure connections (TLS and wss://)
9.8. Further information
10. TorqueBox Scheduled Jobs
10.1. What Are Scheduled Jobs?
10.2. Ruby Job Classes
10.3. Scheduling Jobs
10.3.1. Configuration Format
10.3.2. Timing Out Jobs
10.3.3. Job Concurrency
10.3.4. Jobs Management at Runtime
10.4. 'At' Jobs
10.5. Clustered Jobs
10.5.1. High Availability Singleton Jobs
10.5.2. Jobs Running on Every Node
10.6. Resource Injection with Jobs
11. TorqueBox Services
11.1. What Are Services?
11.2. Service Classes
11.3. Deploying Services
11.3.1. Configuration Format
11.4. Clustered Services
11.4.1. High Availability Singleton Services
11.4.2. Services Running on Every Node
11.5. Resource Injection with Services
12. TorqueBox Resource Injection
12.1. What is Resource Injection?
12.2. Basics of Resource Injection
12.3. Injectable Resources
12.4. Internals and Testing
13. TorqueBox Authentication
13.1. Security Domains
13.2. Configuration
13.3. Ruby API
14. Database Connectivity in TorqueBox
14.1. ActiveRecord
14.2. DataMapper
14.3. Raw JDBC
14.4. Distributed Transactions
15. TorqueBox Distributed Transactions
15.1. Overview
15.2. The TorqueBox.transaction method
15.3. Messaging
15.4. Database Configuration
15.4.1. PostgreSQL
15.4.2. MySQL
15.4.3. Example
16. TorqueBox Runtime Pooling
16.1. Types of Runtime Pools
16.2. Subsystem Pools
16.3. Configuration
16.3.1. Syntax
16.3.2. Examples
16.4. Runtime Initialization
17. The torquebox Command
17.1. torquebox deploy
17.2. torquebox undeploy
17.3. torquebox run
17.4. torquebox rails
17.5. torquebox archive
17.6. torquebox cli
17.7. torquebox env
17.8. torquebox list
17.9. torquebox exec
18. TorqueBox Rake Support
18.1. Overview
18.2. Deploying applications
18.2.1. Directory-based deployments
18.2.2. Archive-based deployments
18.3. Undeploying applications
18.4. Server control
19. TorqueBox Capistrano Support
19.1. What is Capistrano?
19.2. Installing Capistrano
19.3. Capify your Application
19.3.1. Basic deploy.rb configuration
19.4. TorqueBox-specific deploy.rb configuration
19.4.1. Include TorqueBox recipes
19.4.2. Set up home variable(s)
19.4.3. Optionally configuration application variables
19.4.4. Configure server control style
19.4.5. Sample deploy.rb File
19.4.6. Perform deployments
20. torquebox-server Gem
20.1. Install JRuby
20.2. Install torquebox-server
20.3. Deploying and Undeploying Applications
20.4. Running
20.5. Shortcuts For Accessing Paths Inside torquebox-server Gem
21. TorqueBox Production Tips
21.1. Clustering
21.1.1. Enabling Clustering
21.1.2. Multicast Out of the Box
21.1.3. Don't Bind to 0.0.0.0
21.2. Clustering TorqueBox Without Multicast
21.2.1. Clustering On Amazon EC2
21.2.2. HornetQ Configuration
21.3. Sizing Number of HTTP Threads to Connection Pool
21.3.1. Setting Database Connection Pool Size
21.3.2. Setting Max Number of HTTP Threads
21.4. SSL Configuration
21.4.1. SSL Termination at Load Balancer
21.4.2. SSL Termination at TorqueBox
21.5. JVM Tuning
21.5.1. CodeCache
22. TorqueBox Additional Resources
22.1. BackStage
22.1.1. Features
22.1.2. More Information
22.2. New Relic
22.2.1. Usage
22.3. VisualVM
22.3.1. Connecting VisualVM to a Local TorqueBox
22.3.2. Connecting VisualVM to a Remote TorqueBox
A. Licensing
B. GNU Lesser General Public License version 3
C. JRuby Licenses
D. JRuby-Rack License
E. LICENSE AGREEMENT AND LIMITED PRODUCT WARRANTY
F. GNU General Public License
F.1. Preamble
F.2. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
F.2.1. Section 0
F.2.2. Section 1
F.2.3. Section 2
F.2.4. Section 3
F.2.5. Section 4
F.2.6. Section 5
F.2.7. Section 6
F.2.8. Section 7
F.2.9. Section 8
F.2.10. Section 9
F.2.11. Section 10
F.2.12. NO WARRANTY Section 11
F.2.13. Section 12
F.3. How to Apply These Terms to Your New Programs
G. GNU General Public License version 3
H. GNU Lesser General Public License
H.1. Preamble
H.2. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
H.2.1. Section 0
H.2.2. Section 1
H.2.3. Section 2
H.2.4. Section 3
H.2.5. Section 4
H.2.6. Section 5
H.2.7. Section 6
H.2.8. Section 7
H.2.9. Section 8
H.2.10. Section 9
H.2.11. Section 10
H.2.12. Section 11
H.2.13. Section 12
H.2.14. Section 13
H.2.15. Section 14
H.2.16. NO WARRANTY Section 15
H.2.17. Section 16
H.3. How to Apply These Terms to Your New Libraries
I. Apache Software License, Version 1.1
J. Apache License, Version 2.0
J.1. APPENDIX: How to apply the Apache License to your work
K. Common Public License Version 1.0 (CPL)
L. BSD License
M. MIT License
N. Creative Commons Attribution-ShareAlike 3.0