rubber 2.0.4 → 2.0.5

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.
Files changed (33) hide show
  1. data/CHANGELOG +43 -5
  2. data/Rakefile +67 -35
  3. data/lib/rubber/recipes/rubber/setup.rb +4 -4
  4. data/lib/rubber/recipes/rubber/volumes.rb +2 -1
  5. data/lib/rubber/version.rb +1 -1
  6. data/rubber.gemspec +2 -0
  7. data/templates/apache/config/rubber/role/web_tools/tools-apache-vhost.conf +1 -1
  8. data/templates/apache/config/rubber/role/web_tools/tools-index.html +1 -1
  9. data/templates/cassandra/config/rubber/deploy-cassandra.rb +1 -1
  10. data/templates/collectd/config/rubber/deploy-collectd.rb +1 -1
  11. data/templates/complete_passenger_nginx/config/rubber/rubber-complete.yml +1 -0
  12. data/templates/elasticsearch/config/rubber/deploy-elasticsearch.rb +1 -1
  13. data/templates/graphite/config/rubber/deploy-graphite.rb +2 -2
  14. data/templates/graylog/config/rubber/deploy-graylog.rb +2 -2
  15. data/templates/jenkins/config/rubber/deploy-jenkins.rb +1 -1
  16. data/templates/mongodb/config/rubber/deploy-mongodb.rb +1 -1
  17. data/templates/mysql_cluster/config/rubber/deploy-mysql_cluster.rb +3 -3
  18. data/templates/passenger_nginx/config/rubber/role/passenger_nginx/nginx.conf +1 -1
  19. data/templates/redis/config/rubber/deploy-redis.rb +1 -1
  20. data/templates/torquebox/config/rubber/deploy-torquebox.rb +104 -0
  21. data/templates/torquebox/config/rubber/role/app/mod_manager.load +5 -0
  22. data/templates/torquebox/config/rubber/role/app/mod_proxy_cluster.conf +7 -0
  23. data/templates/torquebox/config/rubber/role/app/mod_proxy_cluster.load +5 -0
  24. data/templates/torquebox/config/rubber/role/app/mod_slotmem.load +5 -0
  25. data/templates/torquebox/config/rubber/role/app/torquebox-apache-vhost.conf +102 -0
  26. data/templates/torquebox/config/rubber/role/torquebox/monit-torquebox.conf +8 -0
  27. data/templates/torquebox/config/rubber/role/torquebox/standalone-ha.xml +616 -0
  28. data/templates/torquebox/config/rubber/role/torquebox/standalone.conf +83 -0
  29. data/templates/torquebox/config/rubber/role/torquebox/torquebox-upstart.conf +23 -0
  30. data/templates/torquebox/config/rubber/rubber-torquebox.yml +16 -0
  31. data/templates/torquebox/templates.yml +3 -0
  32. data/templates/zookeeper/config/rubber/deploy-zookeeper.rb +1 -1
  33. metadata +32 -4
@@ -0,0 +1,104 @@
1
+ namespace :rubber do
2
+
3
+ namespace :torquebox do
4
+
5
+ rubber.allow_optional_tasks(self)
6
+
7
+ after "rubber:install_packages", "rubber:torquebox:custom_install"
8
+
9
+ task :custom_install, :roles => :torquebox do
10
+ rubber.sudo_script 'install_torquebox', <<-ENDSCRIPT
11
+ if [[ -z `ls #{rubber_env.torquebox_prefix}/torquebox-#{rubber_env.torquebox_version} 2> /dev/null` ]]; then
12
+ wget -q http://torquebox.org/release/org/torquebox/torquebox-dist/#{rubber_env.torquebox_version}/torquebox-dist-#{rubber_env.torquebox_version}-bin.zip
13
+ unzip -d #{rubber_env.torquebox_prefix} torquebox-dist-#{rubber_env.torquebox_version}-bin.zip &> /dev/null
14
+ chown -R #{rubber_env.app_user} #{rubber_env.torquebox_prefix}/torquebox-#{rubber_env.torquebox_version}
15
+
16
+ # Install to appropriate location.
17
+ rm -f #{rubber_env.torquebox_dir}
18
+ ln -s #{rubber_env.torquebox_prefix}/torquebox-#{rubber_env.torquebox_version} #{rubber_env.torquebox_dir}
19
+
20
+ # Cleanup after ourselves.
21
+ rm torquebox-dist-#{rubber_env.torquebox_version}-bin.zip
22
+ fi
23
+ ENDSCRIPT
24
+ end
25
+
26
+ after "rubber:install_packages", "rubber:torquebox:install_mod_cluster"
27
+
28
+ task :install_mod_cluster, :roles => :app do
29
+ rubber.sudo_script 'install_mod_cluster', <<-ENDSCRIPT
30
+ if [[ ! -f /usr/lib/apache2/modules/mod_proxy_cluster.so ]]; then
31
+ wget -q http://downloads.jboss.org/mod_cluster/#{rubber_env.mod_cluster_version}.Final/mod_cluster-#{rubber_env.mod_cluster_version}.Final-linux2-x64-so.tar.gz
32
+ tar -zxf mod_cluster-#{rubber_env.mod_cluster_version}.Final-linux2-x64-so.tar.gz
33
+
34
+ # Install to appropriate locations
35
+ chmod 644 mod_*.so
36
+ mv mod_*.so /usr/lib/apache2/modules/
37
+
38
+ # Cleanup after ourselves.
39
+ rm mod_cluster-#{rubber_env.mod_cluster_version}.Final-linux2-x64-so.tar.gz
40
+ fi
41
+ ENDSCRIPT
42
+ end
43
+
44
+ # serial_task can only be called after roles defined - not normally a problem, but
45
+ # rubber auto-roles don't get defined till after all tasks are defined
46
+ on :load do
47
+ rubber.serial_task self, :serial_reload, :roles => [:torquebox] do
48
+ rsudo "touch #{jboss_home}/standalone/deployments/#{application}-knob.yml.dodeploy"
49
+
50
+ # Wait for TorqueBox to startup before moving on so we don't remove all hosts from the cluster.
51
+ logger.info "Waiting for TorqueBox to startup"
52
+
53
+ #rsudo "while ! curl -s -f http://$HOSTNAME:#{rubber_env.torquebox_http_port} &> /dev/null; do echo .; sleep 1; done"
54
+
55
+ # TorqueBox first "deploys" the app, then lets the web context startup. While it's deploying,
56
+ # the old context can still service requests. So, we need to wait until the app is deployed before we can
57
+ # start checking if it's handling web requests. Once it's deployed and web requests are being served we can move on.
58
+ rsudo "while ls #{jboss_home}/standalone/deployments/#{application}-knob.yml.dodeploy &> /dev/null; do echo .; sleep 1; done"
59
+ rsudo "while ! curl -s -f http://$HOSTNAME:#{rubber_env.torquebox_http_port} &> /dev/null; do echo .; sleep 1; done"
60
+ end
61
+ end
62
+
63
+ after "rubber:deploy:cold", "rubber:torquebox:install_backstage"
64
+
65
+ task :install_backstage, :roles => :app do
66
+ rsudo "backstage deploy --secure=#{rubber_env.backstage_user}:#{rubber_env.backstage_password}"
67
+ end
68
+
69
+ after "rubber:setup_app_permissions", "rubber:torquebox:setup_app_permissions"
70
+
71
+ task :setup_app_permissions do
72
+ rsudo "chown -R #{rubber_env.app_user}:#{rubber_env.app_user} #{current_path}/public"
73
+ rsudo "chown -R #{rubber_env.app_user}:#{rubber_env.app_user} #{current_path}/tmp"
74
+ end
75
+
76
+ before "deploy:finalize_update", "rubber:torquebox:create_cache_directory"
77
+
78
+ task :create_cache_directory do
79
+ rsudo "mkdir #{shared_path}/cache || true"
80
+ rsudo "chown -R #{rubber_env.app_user}:#{rubber_env.app_user} #{shared_path}/cache"
81
+ end
82
+
83
+ task :restart, :roles => :torquebox do
84
+ stop
85
+ start
86
+ end
87
+
88
+ task :stop, :roles => :torquebox do
89
+ rsudo "service torquebox stop || true"
90
+ end
91
+
92
+ task :start, :roles => :torquebox do
93
+ rsudo "service torquebox start || true"
94
+ end
95
+
96
+ after "deploy:restart", "rubber:torquebox:reload"
97
+
98
+ desc "Reloads the apache web server"
99
+ task :reload, :roles => :torquebox do
100
+ serial_reload
101
+ end
102
+
103
+ end
104
+ end
@@ -0,0 +1,5 @@
1
+ <%
2
+ @path = '/etc/apache2/mods-available/manager.load'
3
+ @post = 'a2enmod manager'
4
+ %>
5
+ LoadModule manager_module /usr/lib/apache2/modules/mod_manager.so
@@ -0,0 +1,7 @@
1
+ <%
2
+ @path = '/etc/apache2/mods-available/proxy_cluster.conf'
3
+ @post = 'service apache2 reload'
4
+ %>
5
+
6
+ # Create in all VirtualHosts.
7
+ CreateBalancers 0
@@ -0,0 +1,5 @@
1
+ <%
2
+ @path = '/etc/apache2/mods-available/proxy_cluster.load'
3
+ @post = 'a2enmod proxy_cluster && a2enmod proxy_ajp'
4
+ %>
5
+ LoadModule proxy_cluster_module /usr/lib/apache2/modules/mod_proxy_cluster.so
@@ -0,0 +1,5 @@
1
+ <%
2
+ @path = '/etc/apache2/mods-available/slotmem.load'
3
+ @post = 'a2enmod slotmem && rm -f /etc/apache2/logs && ln -s /var/log/apache2 /etc/apache2/logs'
4
+ %>
5
+ LoadModule slotmem_module /usr/lib/apache2/modules/mod_slotmem.so
@@ -0,0 +1,102 @@
1
+ <%
2
+ @path = "/etc/apache2/sites-available/#{rubber_env.app_name}-passenger"
3
+ @post = "a2enmod rewrite && a2enmod ssl && a2enmod expires && a2enmod xsendfile && a2ensite #{rubber_env.app_name}"
4
+ %>
5
+
6
+ NameVirtualHost *:<%= rubber_env.apache_listen_port %>
7
+
8
+ <% [rubber_env.apache_listen_port, rubber_env.apache_listen_ssl_port].each do |port| %>
9
+ Listen <%= port %>
10
+ <VirtualHost *:<%= port %>>
11
+ ServerName <%= rubber_env.domain %>
12
+ <%- if rubber_env.web_aliases -%>
13
+ ServerAlias <%= rubber_env.web_aliases.join(" ") %>
14
+ <%- end -%>
15
+ DocumentRoot <%= Rubber.root + "/public" %>
16
+
17
+ ErrorDocument 404 /404.html
18
+ ErrorDocument 500 /500.html
19
+
20
+ SetEnvIf User-Agent "^(.*MSIE.*)|(.*AppleWebKit.*)$" nokeepalive
21
+
22
+ # Don't show haproxy checks in access log (see also apache2.conf)
23
+ SetEnvIf Request_URI "^/httpchk.txt$" dontlog
24
+
25
+ RailsEnv <%= Rubber.env %>
26
+
27
+ XSendFile on
28
+
29
+ RewriteEngine On
30
+ RewriteCond %{HTTP_HOST} ^<%= rubber_env.domain %>$
31
+ RewriteRule ^(.*)$ http://www.<%= rubber_env.domain %>$1 [R,L]
32
+
33
+ # Include <%= Rubber.root %>/config/apache/rewrites.conf
34
+
35
+ RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f
36
+ RewriteCond %{SCRIPT_FILENAME} !maintenance.html
37
+ RewriteRule ^.*$ /system/maintenance.html [L]
38
+
39
+ <% if Rubber::Util.has_asset_pipeline? %>
40
+ <LocationMatch "^/assets/.*$">
41
+ Header unset ETag
42
+ FileETag None
43
+
44
+ # RFC says only cache for 1 year.
45
+ ExpiresActive On
46
+ ExpiresDefault "access plus 1 year"
47
+
48
+ # Cache the resource even if SSL is in use.
49
+ Header merge Cache-Control public
50
+
51
+ SetEnv no-gzip
52
+ </LocationMatch>
53
+
54
+ # Serve the gzip'd assets directly from disk if they were generated by Sprockets.
55
+ # This avoids gzipping the asset on the fly by Apache and Sprockets will usually use a higher level
56
+ # of compression than mod_deflate will, yielding savings all around.
57
+
58
+ RewriteCond %{HTTP:Accept-Encoding} \b(x-)?gzip\b
59
+ RewriteCond <%= Rubber.root + "/public" %>%{REQUEST_FILENAME}.gz -s
60
+ RewriteRule ^(.+) $1.gz [L]
61
+
62
+ <FilesMatch \.css\.gz$>
63
+ ForceType text/css
64
+ Header set Content-Encoding gzip
65
+ </FilesMatch>
66
+
67
+ <FilesMatch \.js\.gz$>
68
+ ForceType text/javascript
69
+ Header set Content-Encoding gzip
70
+ </FilesMatch>
71
+ <% end %>
72
+
73
+ <% if port == rubber_env.passenger_listen_ssl_port %>
74
+ SSLEngine on
75
+ SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
76
+ SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
77
+ SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
78
+ # SSLCertificateFile <%= Rubber.root %>/config/<%= rubber_env.domain %>.crt
79
+ # SSLCertificateKeyFile <%= Rubber.root %>/config/<%= rubber_env.domain %>.key
80
+ # SSLCertificateChainFile /etc/ssl/certs/gd_intermediate_bundle.crt
81
+
82
+ SSLHonorCipherOrder On
83
+ SSLCipherSuite ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH:!AESGCM
84
+ <% end %>
85
+
86
+ # Show additional information in mod_cluster-manager.
87
+ AllowDisplay On
88
+
89
+ # Enable receiving TorqueBox node registration requests.
90
+ EnableMCPMReceive
91
+
92
+ # Enabled the mod_cluster manager.
93
+ <Location /mod_cluster-manager>
94
+ SetHandler mod_cluster-manager
95
+ Order deny,allow
96
+ Deny from all
97
+ Allow from 127.0.0.1
98
+ </Location>
99
+ </VirtualHost>
100
+
101
+ <% end %>
102
+
@@ -0,0 +1,8 @@
1
+ <%
2
+ @path = '/etc/monit/monit.d/monit-torquebox.conf'
3
+ %>
4
+ check process torquebox with pidfile <%= rubber_env.torquebox_pid_file %>
5
+ group torquebox-<%= Rubber.env %>
6
+ start program = "/usr/bin/env service torquebox start"
7
+ stop program = "/usr/bin/env service torquebox stop"
8
+ if failed host <%= rubber_env.host %> port <%= rubber_env.torquebox_http_port %> with timeout 10 seconds for 20 cycles then restart
@@ -0,0 +1,616 @@
1
+ <%
2
+ @path = "#{rubber_env.torquebox_dir}/jboss/standalone/configuration/standalone-ha.xml"
3
+ %><?xml version='1.0' encoding='UTF-8'?>
4
+ <server xmlns='urn:jboss:domain:1.2'>
5
+ <extensions>
6
+ <extension module='org.jboss.as.clustering.infinispan'/>
7
+ <extension module='org.jboss.as.clustering.jgroups'/>
8
+ <extension module='org.jboss.as.cmp'/>
9
+ <extension module='org.jboss.as.configadmin'/>
10
+ <extension module='org.jboss.as.connector'/>
11
+ <extension module='org.jboss.as.deployment-scanner'/>
12
+ <extension module='org.jboss.as.ee'/>
13
+ <extension module='org.jboss.as.ejb3'/>
14
+ <extension module='org.jboss.as.jacorb'/>
15
+ <extension module='org.jboss.as.jaxr'/>
16
+ <extension module='org.jboss.as.jaxrs'/>
17
+ <extension module='org.jboss.as.jdr'/>
18
+ <extension module='org.jboss.as.jmx'/>
19
+ <extension module='org.jboss.as.jpa'/>
20
+ <extension module='org.jboss.as.jsr77'/>
21
+ <extension module='org.jboss.as.logging'/>
22
+ <extension module='org.jboss.as.mail'/>
23
+ <extension module='org.jboss.as.messaging'/>
24
+ <extension module='org.jboss.as.modcluster'/>
25
+ <extension module='org.jboss.as.naming'/>
26
+ <extension module='org.jboss.as.osgi'/>
27
+ <extension module='org.jboss.as.pojo'/>
28
+ <extension module='org.jboss.as.remoting'/>
29
+ <extension module='org.jboss.as.sar'/>
30
+ <extension module='org.jboss.as.security'/>
31
+ <extension module='org.jboss.as.threads'/>
32
+ <extension module='org.jboss.as.transactions'/>
33
+ <extension module='org.jboss.as.web'/>
34
+ <extension module='org.jboss.as.webservices'/>
35
+ <extension module='org.jboss.as.weld'/>
36
+ <extension module='org.torquebox.bootstrap'/>
37
+ <extension module='org.torquebox.core'/>
38
+ <extension module='org.torquebox.services'/>
39
+ <extension module='org.torquebox.security'/>
40
+ <extension module='org.torquebox.jobs'/>
41
+ <extension module='org.torquebox.stomp'/>
42
+ <extension module='org.torquebox.messaging'/>
43
+ <extension module='org.torquebox.cdi'/>
44
+ <extension module='org.torquebox.web'/>
45
+ <extension module='org.torquebox.cache'/>
46
+ <extension module='org.projectodd.polyglot.hasingleton'/>
47
+ </extensions>
48
+ <system-properties>
49
+ <property name='org.apache.tomcat.util.http.ServerCookie.FWD_SLASH_IS_SEPARATOR' value='false'/>
50
+ <property name='org.apache.tomcat.util.net.WAIT_FOR_THREAD' value='false'/>
51
+ </system-properties>
52
+ <management>
53
+ <security-realms>
54
+ <security-realm name='ManagementRealm'>
55
+ <authentication>
56
+ <properties path='mgmt-users.properties' relative-to='jboss.server.config.dir'/>
57
+ </authentication>
58
+ </security-realm>
59
+ <security-realm name='ApplicationRealm'>
60
+ <authentication>
61
+ <properties path='application-users.properties' relative-to='jboss.server.config.dir'/>
62
+ </authentication>
63
+ </security-realm>
64
+ </security-realms>
65
+ <management-interfaces>
66
+ <native-interface>
67
+ <socket-binding native='management-native'/>
68
+ </native-interface>
69
+ <http-interface>
70
+ <socket-binding http='management-http'/>
71
+ </http-interface>
72
+ </management-interfaces>
73
+ </management>
74
+ <profile>
75
+ <subsystem xmlns='urn:jboss:domain:logging:1.1'>
76
+ <console-handler name='CONSOLE'>
77
+ <level name='INFO'/>
78
+ <formatter>
79
+ <pattern-formatter pattern='%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n'/>
80
+ </formatter>
81
+ </console-handler>
82
+ <periodic-rotating-file-handler name='FILE'>
83
+ <formatter>
84
+ <pattern-formatter pattern='%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n'/>
85
+ </formatter>
86
+ <file relative-to='jboss.server.log.dir' path='server.log'/>
87
+ <suffix value='.yyyy-MM-dd'/>
88
+ <append value='true'/>
89
+ </periodic-rotating-file-handler>
90
+ <logger category='com.arjuna'>
91
+ <level name='WARN'/>
92
+ </logger>
93
+ <logger category='org.apache.tomcat.util.modeler'>
94
+ <level name='WARN'/>
95
+ </logger>
96
+ <logger category='sun.rmi'>
97
+ <level name='WARN'/>
98
+ </logger>
99
+ <logger category='jacorb'>
100
+ <level name='WARN'/>
101
+ </logger>
102
+ <logger category='jacorb.config'>
103
+ <level name='ERROR'/>
104
+ </logger>
105
+ <root-logger>
106
+ <level name='INFO'/>
107
+ <handlers>
108
+ <handler name='CONSOLE'/>
109
+ <handler name='FILE'/>
110
+ </handlers>
111
+ </root-logger>
112
+ <logger category='org.jboss.jca.adapters.jdbc.extensions.mysql'>
113
+ <level name='ERROR'/>
114
+ </logger>
115
+ </subsystem>
116
+ <subsystem xmlns='urn:jboss:domain:cmp:1.0'/>
117
+ <subsystem xmlns='urn:jboss:domain:configadmin:1.0'/>
118
+ <subsystem xmlns='urn:jboss:domain:datasources:1.0'>
119
+ <datasources>
120
+ <datasource jndi-name='java:jboss/datasources/ExampleDS' pool-name='ExampleDS' enabled='true' use-java-context='true'>
121
+ <connection-url>
122
+ jdbc:h2:mem:test;DB_CLOSE_DELAY=-1
123
+ </connection-url>
124
+ <driver>
125
+ h2
126
+ </driver>
127
+ <security>
128
+ <user-name>
129
+ sa
130
+ </user-name>
131
+ <password>
132
+ sa
133
+ </password>
134
+ </security>
135
+ </datasource>
136
+ <drivers>
137
+ <driver name='h2' module='com.h2database.h2'>
138
+ <xa-datasource-class>
139
+ org.h2.jdbcx.JdbcDataSource
140
+ </xa-datasource-class>
141
+ </driver>
142
+ </drivers>
143
+ </datasources>
144
+ </subsystem>
145
+ <subsystem xmlns='urn:jboss:domain:deployment-scanner:1.1'>
146
+ <deployment-scanner path='deployments' relative-to='jboss.server.base.dir' scan-interval='5000' deployment-timeout='1200'/>
147
+ </subsystem>
148
+ <subsystem xmlns='urn:jboss:domain:ee:1.0'/>
149
+ <subsystem xmlns='urn:jboss:domain:ejb3:1.2'>
150
+ <session-bean>
151
+ <stateless>
152
+ <bean-instance-pool-ref pool-name='slsb-strict-max-pool'/>
153
+ </stateless>
154
+ <stateful default-access-timeout='5000' cache-ref='simple' clustered-cache-ref='clustered'/>
155
+ <singleton default-access-timeout='5000'/>
156
+ </session-bean>
157
+ <mdb>
158
+ <resource-adapter-ref resource-adapter-name='hornetq-ra'/>
159
+ <bean-instance-pool-ref pool-name='mdb-strict-max-pool'/>
160
+ </mdb>
161
+ <pools>
162
+ <bean-instance-pools>
163
+ <strict-max-pool name='slsb-strict-max-pool' max-pool-size='20' instance-acquisition-timeout='5' instance-acquisition-timeout-unit='MINUTES'/>
164
+ <strict-max-pool name='mdb-strict-max-pool' max-pool-size='20' instance-acquisition-timeout='5' instance-acquisition-timeout-unit='MINUTES'/>
165
+ </bean-instance-pools>
166
+ </pools>
167
+ <caches>
168
+ <cache name='simple' aliases='NoPassivationCache'/>
169
+ <cache name='passivating' passivation-store-ref='file' aliases='SimpleStatefulCache'/>
170
+ <cache name='clustered' passivation-store-ref='infinispan' aliases='StatefulTreeCache'/>
171
+ </caches>
172
+ <passivation-stores>
173
+ <file-passivation-store name='file'/>
174
+ <cluster-passivation-store name='infinispan' cache-container='ejb'/>
175
+ </passivation-stores>
176
+ <async thread-pool-name='default'/>
177
+ <timer-service thread-pool-name='default'>
178
+ <data-store path='timer-service-data' relative-to='jboss.server.data.dir'/>
179
+ </timer-service>
180
+ <remote connector-ref='remoting-connector' thread-pool-name='default'/>
181
+ <thread-pools>
182
+ <thread-pool name='default'>
183
+ <max-threads count='10'/>
184
+ <keepalive-time time='100' unit='milliseconds'/>
185
+ </thread-pool>
186
+ </thread-pools>
187
+ <iiop enable-by-default='false' use-qualified-name='false'/>
188
+ </subsystem>
189
+ <subsystem xmlns='urn:jboss:domain:infinispan:1.2' default-cache-container='cluster'>
190
+ <cache-container name='cluster' aliases='ha-partition' default-cache='default'>
191
+ <transport lock-timeout='60000'/>
192
+ <replicated-cache name='default' mode='SYNC' batching='true'>
193
+ <locking isolation='REPEATABLE_READ'/>
194
+ </replicated-cache>
195
+ </cache-container>
196
+ <cache-container name='web' aliases='torquebox standard-session-cache' default-cache='repl'>
197
+ <transport lock-timeout='60000'/>
198
+ <replicated-cache name='repl' mode='ASYNC' batching='true'>
199
+ <file-store/>
200
+ </replicated-cache>
201
+ <replicated-cache name='sso' mode='SYNC' batching='true'/>
202
+ <distributed-cache name='dist' mode='ASYNC' batching='true'>
203
+ <file-store/>
204
+ </distributed-cache>
205
+ </cache-container>
206
+ <cache-container name='ejb' aliases='sfsb sfsb-cache' default-cache='repl'>
207
+ <transport lock-timeout='60000'/>
208
+ <replicated-cache name='repl' mode='ASYNC' batching='true'>
209
+ <eviction strategy='LRU'/>
210
+ <file-store/>
211
+ </replicated-cache>
212
+ <!--
213
+ ~ Clustered cache used internally by EJB subsytem for managing the client-mapping(s) of
214
+ ~ the socketbinding referenced by the EJB remoting connector
215
+ -->
216
+ <replicated-cache name='remote-connector-client-mappings' mode='SYNC' batching='true'/>
217
+ <distributed-cache name='dist' mode='ASYNC' batching='true'>
218
+ <eviction strategy='LRU'/>
219
+ <file-store/>
220
+ </distributed-cache>
221
+ </cache-container>
222
+ <cache-container name='hibernate' default-cache='local-query'>
223
+ <transport lock-timeout='60000'/>
224
+ <local-cache name='local-query'>
225
+ <transaction mode='NONE'/>
226
+ <eviction strategy='LRU' max-entries='10000'/>
227
+ <expiration max-idle='100000'/>
228
+ </local-cache>
229
+ <invalidation-cache name='entity' mode='SYNC'>
230
+ <transaction mode='NON_XA'/>
231
+ <eviction strategy='LRU' max-entries='10000'/>
232
+ <expiration max-idle='100000'/>
233
+ </invalidation-cache>
234
+ <replicated-cache name='timestamps' mode='ASYNC'>
235
+ <transaction mode='NONE'/>
236
+ <eviction strategy='NONE'/>
237
+ </replicated-cache>
238
+ </cache-container>
239
+ </subsystem>
240
+ <subsystem xmlns='urn:jboss:domain:jacorb:1.1'>
241
+ <orb>
242
+ <initializers transactions='spec' security='on'/>
243
+ </orb>
244
+ </subsystem>
245
+ <subsystem xmlns='urn:jboss:domain:jaxr:1.1'>
246
+ <connection-factory jndi-name='java:jboss/jaxr/ConnectionFactory'/>
247
+ </subsystem>
248
+ <subsystem xmlns='urn:jboss:domain:jaxrs:1.0'/>
249
+ <subsystem xmlns='urn:jboss:domain:jca:1.1'>
250
+ <archive-validation enabled='true' fail-on-error='true' fail-on-warn='false'/>
251
+ <bean-validation enabled='true'/>
252
+ <default-workmanager>
253
+ <short-running-threads>
254
+ <core-threads count='50'/>
255
+ <queue-length count='50'/>
256
+ <max-threads count='50'/>
257
+ <keepalive-time time='10' unit='seconds'/>
258
+ </short-running-threads>
259
+ <long-running-threads>
260
+ <core-threads count='50'/>
261
+ <queue-length count='50'/>
262
+ <max-threads count='50'/>
263
+ <keepalive-time time='10' unit='seconds'/>
264
+ </long-running-threads>
265
+ </default-workmanager>
266
+ <cached-connection-manager/>
267
+ </subsystem>
268
+ <subsystem xmlns='urn:jboss:domain:jdr:1.0'/>
269
+ <subsystem xmlns='urn:jboss:domain:jgroups:1.1' default-stack='tcp'>
270
+ <stack name='udp'>
271
+ <transport type='UDP' socket-binding='jgroups-udp' diagnostics-socket-binding='jgroups-diagnostics'/>
272
+ <protocol type='PING'/>
273
+ <protocol type='MERGE2'/>
274
+ <protocol type='FD_SOCK' socket-binding='jgroups-udp-fd'/>
275
+ <protocol type='FD'/>
276
+ <protocol type='VERIFY_SUSPECT'/>
277
+ <protocol type='BARRIER'/>
278
+ <protocol type='pbcast.NAKACK'/>
279
+ <protocol type='UNICAST2'/>
280
+ <protocol type='pbcast.STABLE'/>
281
+ <protocol type='pbcast.GMS'/>
282
+ <protocol type='UFC'/>
283
+ <protocol type='MFC'/>
284
+ <protocol type='FRAG2'/>
285
+ </stack>
286
+ <stack name='tcp'>
287
+ <transport type='TCP' socket-binding='jgroups-tcp' diagnostics-socket-binding='jgroups-diagnostics'/>
288
+ <protocol type="TCPPING">
289
+ <property name="initial_hosts">
290
+ <%= rubber_instances.for_role('torquebox').collect { |host| "#{host.full_name}[7600]" }.join(',') %>
291
+ </property>
292
+ </protocol>
293
+ <protocol type='MPING' socket-binding='jgroups-mping'/>
294
+ <protocol type='MERGE2'/>
295
+ <protocol type='FD_SOCK' socket-binding='jgroups-tcp-fd'/>
296
+ <protocol type='FD'/>
297
+ <protocol type='VERIFY_SUSPECT'/>
298
+ <protocol type='BARRIER'/>
299
+ <protocol type='pbcast.NAKACK'/>
300
+ <protocol type='UNICAST2'/>
301
+ <protocol type='pbcast.STABLE'/>
302
+ <protocol type='pbcast.GMS'/>
303
+ <protocol type='UFC'/>
304
+ <protocol type='MFC'/>
305
+ <protocol type='FRAG2'/>
306
+ </stack>
307
+ </subsystem>
308
+ <subsystem xmlns='urn:jboss:domain:jmx:1.1'>
309
+ <show-model value='true'/>
310
+ <remoting-connector/>
311
+ </subsystem>
312
+ <subsystem xmlns='urn:jboss:domain:jpa:1.0'>
313
+ <jpa default-datasource=''/>
314
+ </subsystem>
315
+ <subsystem xmlns='urn:jboss:domain:jsr77:1.0'/>
316
+ <subsystem xmlns='urn:jboss:domain:mail:1.0'>
317
+ <mail-session jndi-name='java:jboss/mail/Default'>
318
+ <smtp-server outbound-socket-binding-ref='mail-smtp'/>
319
+ </mail-session>
320
+ </subsystem>
321
+ <subsystem xmlns='urn:jboss:domain:messaging:1.1'>
322
+ <hornetq-server>
323
+ <clustered>
324
+ true
325
+ </clustered>
326
+ <persistence-enabled>
327
+ true
328
+ </persistence-enabled>
329
+ <journal-file-size>
330
+ 102400
331
+ </journal-file-size>
332
+ <journal-min-files>
333
+ 2
334
+ </journal-min-files>
335
+ <connectors>
336
+ <netty-connector name='netty' socket-binding='messaging'/>
337
+ <netty-connector name='netty-throughput' socket-binding='messaging-throughput'>
338
+ <param key='batch-delay' value='50'/>
339
+ </netty-connector>
340
+ <in-vm-connector name='in-vm' server-id='0'/>
341
+ </connectors>
342
+ <acceptors>
343
+ <netty-acceptor name='netty' socket-binding='messaging'/>
344
+ <netty-acceptor name='netty-throughput' socket-binding='messaging-throughput'>
345
+ <param key='batch-delay' value='50'/>
346
+ <param key='direct-deliver' value='false'/>
347
+ </netty-acceptor>
348
+ <in-vm-acceptor name='in-vm' server-id='0'/>
349
+ </acceptors>
350
+ <broadcast-groups>
351
+ <broadcast-group name='bg-group1'>
352
+ <broadcast-period>
353
+ 5000
354
+ </broadcast-period>
355
+ <connector-ref>
356
+ netty
357
+ </connector-ref>
358
+ <socket-binding>
359
+ messaging-group
360
+ </socket-binding>
361
+ </broadcast-group>
362
+ </broadcast-groups>
363
+ <discovery-groups>
364
+ <discovery-group name='dg-group1'>
365
+ <refresh-timeout>
366
+ 10000
367
+ </refresh-timeout>
368
+ <socket-binding>
369
+ messaging-group
370
+ </socket-binding>
371
+ </discovery-group>
372
+ </discovery-groups>
373
+ <cluster-connections>
374
+ <cluster-connection name='my-cluster'>
375
+ <address>
376
+ jms
377
+ </address>
378
+ <connector-ref>
379
+ netty
380
+ </connector-ref>
381
+ <discovery-group-ref discovery-group-name='dg-group1'/>
382
+ </cluster-connection>
383
+ </cluster-connections>
384
+ <security-settings>
385
+ <security-setting match='#'>
386
+ <permission type='send' roles='guest'/>
387
+ <permission type='consume' roles='guest'/>
388
+ <permission type='createNonDurableQueue' roles='guest'/>
389
+ <permission type='deleteNonDurableQueue' roles='guest'/>
390
+ </security-setting>
391
+ </security-settings>
392
+ <address-settings>
393
+ <!--default for catch all-->
394
+ <address-setting match='#'>
395
+ <dead-letter-address>
396
+ jms.queue.DLQ
397
+ </dead-letter-address>
398
+ <expiry-address>
399
+ jms.queue.ExpiryQueue
400
+ </expiry-address>
401
+ <redelivery-delay>
402
+ 0
403
+ </redelivery-delay>
404
+ <redistribution-delay>
405
+ 1000
406
+ </redistribution-delay>
407
+ <max-size-bytes>
408
+ 20971520
409
+ </max-size-bytes>
410
+ <address-full-policy>
411
+ PAGE
412
+ </address-full-policy>
413
+ <message-counter-history-day-limit>
414
+ 10
415
+ </message-counter-history-day-limit>
416
+ </address-setting>
417
+ </address-settings>
418
+ <jms-connection-factories>
419
+ <connection-factory name='InVmConnectionFactory'>
420
+ <connectors>
421
+ <connector-ref connector-name='in-vm'/>
422
+ </connectors>
423
+ <entries>
424
+ <entry name='java:/ConnectionFactory'/>
425
+ </entries>
426
+ <consumer-window-size>
427
+ 1
428
+ </consumer-window-size>
429
+ </connection-factory>
430
+ <connection-factory name='RemoteConnectionFactory'>
431
+ <connectors>
432
+ <connector-ref connector-name='netty'/>
433
+ </connectors>
434
+ <entries>
435
+ <entry name='RemoteConnectionFactory'/>
436
+ <entry name='java:jboss/exported/jms/RemoteConnectionFactory'/>
437
+ </entries>
438
+ <consumer-window-size>
439
+ 1
440
+ </consumer-window-size>
441
+ </connection-factory>
442
+ <pooled-connection-factory name='hornetq-ra'>
443
+ <transaction mode='xa'/>
444
+ <connectors>
445
+ <connector-ref connector-name='in-vm'/>
446
+ </connectors>
447
+ <entries>
448
+ <entry name='java:/JmsXA'/>
449
+ </entries>
450
+ </pooled-connection-factory>
451
+ </jms-connection-factories>
452
+ <jms-destinations>
453
+ </jms-destinations>
454
+ <cluster-user>
455
+ admin
456
+ </cluster-user>
457
+ <cluster-password>
458
+ password
459
+ </cluster-password>
460
+ <jmx-management-enabled>
461
+ true
462
+ </jmx-management-enabled>
463
+ <security-enabled>
464
+ false
465
+ </security-enabled>
466
+ </hornetq-server>
467
+ </subsystem>
468
+ <subsystem xmlns='urn:jboss:domain:modcluster:1.0'>
469
+ <mod-cluster-config proxy-list="${jboss.mod_cluster.proxyList}" excluded-contexts='invoker,jbossws,juddi,console'>
470
+ <dynamic-load-provider>
471
+ <load-metric type='busyness'/>
472
+ </dynamic-load-provider>
473
+ </mod-cluster-config>
474
+ </subsystem>
475
+ <subsystem xmlns='urn:jboss:domain:naming:1.1'/>
476
+ <subsystem xmlns='urn:jboss:domain:osgi:1.2' activation='lazy'>
477
+ <properties>
478
+ <!-- Specifies the beginning start level of the framework -->
479
+ <property name='org.osgi.framework.startlevel.beginning'>
480
+ 1
481
+ </property>
482
+ </properties>
483
+ <capabilities>
484
+ <!-- modules registered with the OSGi layer on startup -->
485
+ <capability name='javax.servlet.api:v25'/>
486
+ <capability name='javax.transaction.api'/>
487
+ <!-- bundles started in startlevel 1 -->
488
+ <capability name='org.apache.felix.log' startlevel='1'/>
489
+ <capability name='org.jboss.osgi.logging' startlevel='1'/>
490
+ <capability name='org.apache.felix.configadmin' startlevel='1'/>
491
+ <capability name='org.jboss.as.osgi.configadmin' startlevel='1'/>
492
+ </capabilities>
493
+ </subsystem>
494
+ <subsystem xmlns='urn:jboss:domain:pojo:1.0'/>
495
+ <subsystem xmlns='urn:jboss:domain:remoting:1.1'>
496
+ <connector name='remoting-connector' socket-binding='remoting' security-realm='ApplicationRealm'/>
497
+ </subsystem>
498
+ <subsystem xmlns='urn:jboss:domain:resource-adapters:1.0'/>
499
+ <subsystem xmlns='urn:jboss:domain:sar:1.0'/>
500
+ <subsystem xmlns='urn:jboss:domain:security:1.1'>
501
+ <security-domains>
502
+ <security-domain name='other' cache-type='default'>
503
+ <authentication>
504
+ <login-module code='Remoting' flag='optional'>
505
+ <module-option name='password-stacking' value='useFirstPass'/>
506
+ </login-module>
507
+ <login-module code='RealmUsersRoles' flag='required'>
508
+ <module-option name='usersProperties' value='${jboss.server.config.dir}/application-users.properties'/>
509
+ <module-option name='rolesProperties' value='${jboss.server.config.dir}/application-roles.properties'/>
510
+ <module-option name='realm' value='ApplicationRealm'/>
511
+ <module-option name='password-stacking' value='useFirstPass'/>
512
+ </login-module>
513
+ </authentication>
514
+ </security-domain>
515
+ <security-domain name='jboss-web-policy' cache-type='default'>
516
+ <authorization>
517
+ <policy-module code='Delegating' flag='required'/>
518
+ </authorization>
519
+ </security-domain>
520
+ <security-domain name='jboss-ejb-policy' cache-type='default'>
521
+ <authorization>
522
+ <policy-module code='Delegating' flag='required'/>
523
+ </authorization>
524
+ </security-domain>
525
+ </security-domains>
526
+ </subsystem>
527
+ <subsystem xmlns='urn:jboss:domain:threads:1.1'/>
528
+ <subsystem xmlns='urn:jboss:domain:transactions:1.1'>
529
+ <core-environment>
530
+ <process-id>
531
+ <uuid/>
532
+ </process-id>
533
+ </core-environment>
534
+ <recovery-environment socket-binding='txn-recovery-environment' status-socket-binding='txn-status-manager'/>
535
+ <coordinator-environment default-timeout='300'/>
536
+ </subsystem>
537
+ <subsystem xmlns='urn:jboss:domain:web:1.1' default-virtual-server='default-host' native='false'>
538
+ <connector name='http' protocol='HTTP/1.1' scheme='http' socket-binding='http'/>
539
+ <connector name='ajp' protocol='AJP/1.3' scheme='http' socket-binding='ajp'/>
540
+ <virtual-server name='default-host'>
541
+ <alias name='localhost'/>
542
+ <alias name='example.com'/>
543
+ </virtual-server>
544
+ </subsystem>
545
+ <subsystem xmlns='urn:jboss:domain:webservices:1.1'>
546
+ <modify-wsdl-address>
547
+ true
548
+ </modify-wsdl-address>
549
+ <wsdl-host>
550
+ ${jboss.bind.address:127.0.0.1}
551
+ </wsdl-host>
552
+ <endpoint-config name='Standard-Endpoint-Config'/>
553
+ <endpoint-config name='Recording-Endpoint-Config'>
554
+ <pre-handler-chain name='recording-handlers' protocol-bindings='##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM'>
555
+ <handler name='RecordingHandler' class='org.jboss.ws.common.invocation.RecordingServerHandler'/>
556
+ </pre-handler-chain>
557
+ </endpoint-config>
558
+ </subsystem>
559
+ <subsystem xmlns='urn:jboss:domain:weld:1.0'/>
560
+ <subsystem xmlns='urn:jboss:domain:torquebox-bootstrap:1.0'/>
561
+ <subsystem xmlns='urn:jboss:domain:torquebox-core:1.0'/>
562
+ <subsystem xmlns='urn:jboss:domain:torquebox-services:1.0'/>
563
+ <subsystem xmlns='urn:jboss:domain:torquebox-security:1.0'/>
564
+ <subsystem xmlns='urn:jboss:domain:torquebox-jobs:1.0'/>
565
+ <subsystem xmlns='urn:jboss:domain:torquebox-stomp:1.0' socket-binding='stomp'/>
566
+ <subsystem xmlns='urn:jboss:domain:torquebox-messaging:1.0'/>
567
+ <subsystem xmlns='urn:jboss:domain:torquebox-cdi:1.0'/>
568
+ <subsystem xmlns='urn:jboss:domain:torquebox-web:1.0'/>
569
+ <subsystem xmlns='urn:jboss:domain:torquebox-cache:1.0'/>
570
+ <subsystem xmlns='urn:jboss:domain:polyglot-hasingleton:1.0'/>
571
+ </profile>
572
+ <interfaces>
573
+ <interface name='management'>
574
+ <inet-address value='${jboss.bind.address.management:127.0.0.1}'/>
575
+ </interface>
576
+ <interface name='public'>
577
+ <inet-address value='${jboss.bind.address:127.0.0.1}'/>
578
+ </interface>
579
+ <!-- TODO - only show this if the jacorb subsystem is added -->
580
+ <interface name='unsecure'>
581
+ <!--
582
+ ~ Used for IIOP sockets in the standard configuration.
583
+ ~ To secure JacORB you need to setup SSL
584
+ -->
585
+ <inet-address value='${jboss.bind.address.unsecure:127.0.0.1}'/>
586
+ </interface>
587
+ </interfaces>
588
+ <socket-binding-group name='standard-sockets' default-interface='public' port-offset='${jboss.socket.binding.port-offset:0}'>
589
+ <socket-binding name='management-native' interface='management' port='${jboss.management.native.port:9999}'/>
590
+ <socket-binding name='management-http' interface='management' port='${jboss.management.http.port:9990}'/>
591
+ <socket-binding name='management-https' interface='management' port='${jboss.management.https.port:9443}'/>
592
+ <socket-binding name='ajp' port='<%= rubber_env.torquebox_ajp_port %>'/>
593
+ <socket-binding name='http' port='<%= rubber_env.torquebox_http_port %>'/>
594
+ <socket-binding name='https' port='<%= rubber_env.torquebox_https_port %>'/>
595
+ <socket-binding name='jacorb' interface='unsecure' port='3528'/>
596
+ <socket-binding name='jacorb-ssl' interface='unsecure' port='3529'/>
597
+ <socket-binding name='jgroups-diagnostics' port='0' multicast-address='224.0.75.75' multicast-port='7500'/>
598
+ <socket-binding name='jgroups-mping' port='0' multicast-address='${jboss.default.multicast.address:230.0.0.4}' multicast-port='45700'/>
599
+ <socket-binding name='jgroups-tcp' port='7600'/>
600
+ <socket-binding name='jgroups-tcp-fd' port='57600'/>
601
+ <socket-binding name='jgroups-udp' port='55200' multicast-address='${jboss.default.multicast.address:230.0.0.4}' multicast-port='45688'/>
602
+ <socket-binding name='jgroups-udp-fd' port='54200'/>
603
+ <socket-binding name='messaging' port='5445'/>
604
+ <socket-binding name='messaging-throughput' port='5455'/>
605
+ <socket-binding name='modcluster' port='0' multicast-address='224.0.1.105' multicast-port='23364'/>
606
+ <socket-binding name='osgi-http' interface='management' port='8090'/>
607
+ <socket-binding name='remoting' port='4447'/>
608
+ <socket-binding name='txn-recovery-environment' port='4712'/>
609
+ <socket-binding name='txn-status-manager' port='4713'/>
610
+ <outbound-socket-binding name='mail-smtp'>
611
+ <remote-destination host='localhost' port='25'/>
612
+ </outbound-socket-binding>
613
+ <socket-binding name='stomp' port='8675'/>
614
+ <socket-binding name='messaging-group' port='0' multicast-address='${jboss.messaging.group.address:231.7.7.7}' multicast-port='${jboss.messaging.group.port:9876}'/>
615
+ </socket-binding-group>
616
+ </server>