rboss 0.2.4 → 0.3.0

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.
data/README.md CHANGED
@@ -220,15 +220,31 @@ Use an array with the services to remove, the current supported are:
220
220
  * Admin Console => :admin_console
221
221
  * Web Console => :web_console
222
222
  * Mail Service => :mail
223
- * Bsh Deployer => :bsh_deployer
223
+ * BeanShell => :bean_shell
224
224
  * Hot Deploy => :hot_deploy
225
- * JUDDI => :juddi
225
+ * UDDI => :uddi
226
226
  * UUID Key Generator => :key_generator
227
227
  * Scheduling => :scheduling
228
228
  * JMX Console => :jmx_console
229
229
  * JBoss WS => :jboss_ws
230
230
  * JMX Remoting => :jmx_remoting
231
231
  * ROOT Page => :root_page
232
+ * Management => :management
233
+ * IIOP => :iiop
234
+ * JBoss Web => :jboss_web
235
+ * SNMP => :snmp
236
+ * Profile Service => :profile
237
+ * EJB3 => :ejb3
238
+ * EJB2 => :ejb2
239
+ * JMX Invoker => :jmx_invoker
240
+ * HA HTTP Invoker => :ha_http_invoker
241
+ * Legacy Invoker => :legacy_invoker
242
+ * Transaction => :transaction
243
+ * Remoting => :remoting
244
+ * Properties Service => :properties
245
+ * Database/Datasource => :database
246
+ * JSR-88 => :jsr88
247
+ * XNIO => :xnio
232
248
 
233
249
  Any slimmed service will be removed logically by using a ".rej" suffix in the files/directories.
234
250
 
data/bin/jboss-profile CHANGED
@@ -38,7 +38,7 @@ end
38
38
  opts.on('-t', '--type TYPE', 'Defines the JBoss Type (org, eap, soa_p, epp)') do |type|
39
39
  params[:type] = type.to_sym
40
40
  end
41
- opts.on('-v', '--version VERSION', 'Defines the JBoss version (5, 6, 5.1, ...)') do |version|
41
+ opts.on('-n', '--version VERSION', 'Defines the JBoss version (5, 6, 5.1, ...)') do |version|
42
42
  params[:version] = version
43
43
  end
44
44
  opts.on('-b', '--base-profile PROFILE', 'Defines the base profile') do |profile|
@@ -61,13 +61,25 @@ opts.on('-c', '--config-file FILE', 'Defines the configuration file for the inst
61
61
  end
62
62
  end
63
63
  end
64
- opts.on('-d', '--debug', '--verbose', 'Displays shell commands') do
65
- include FileUtils::Verbose
66
- params[:log_level] = Logger::DEBUG
67
- end
68
64
  opts.on("--encrypt PASSWORD", "Encrypts the given password for using with a SecureIdentityLoginModule") do |password|
69
65
  params[:encrypt] = password
70
66
  end
67
+ opts.on("--slim SERVICES", "--slimming SERVICES", Array, "Slim the desired JBoss profile") do |services|
68
+ params[:slimming] = services
69
+ end
70
+ opts.on("--restore SERVICES", Array, "Restores slimmed services in the desired JBoss profile") do |services|
71
+ params[:restore] = services
72
+ create = false
73
+ end
74
+ opts.on("--this", "Defines the current dir as the profile folder and update mode") do
75
+ params[:jboss_home] = File.dirname(File.dirname(Dir.pwd))
76
+ params[:profile] = Dir.pwd.split('/')[-1]
77
+ create = false
78
+ end
79
+ opts.on('-v', '--verbose', 'Displays shell commands') do
80
+ include FileUtils::Verbose
81
+ params[:log_level] = Logger::DEBUG
82
+ end
71
83
  opts.on("-h", "--help", "Shows this help message") { puts opts; exit }
72
84
  opts.parse!(ARGV) rescue abort 'Invalid Option! Use --help or -h for usage help.'
73
85
 
@@ -79,8 +91,16 @@ end
79
91
  params[:jboss_home] ||= Dir.pwd unless ENV["JBOSS_HOME"]
80
92
  profile = JBoss::Profile::new params
81
93
 
94
+ if params[:slimming]
95
+ profile.slim *params[:slimming]
96
+ end
97
+
98
+ if params[:restore]
99
+ profile.add :restore, *params[:restore]
100
+ end
101
+
82
102
  if params[:encrypt]
83
- puts "Encrypted password: " + profile.jboss.encrypt(params.delete :encrypt)
103
+ puts "Encrypted password: " + profile.jboss.encrypt(params[:encrypt])
84
104
  exit
85
105
  end
86
106
 
@@ -88,7 +108,7 @@ if config
88
108
  config.each do |var|
89
109
  if var.is_a? Hash
90
110
  var.each do |key, value|
91
- key = key.to_sym if key.is_a? String
111
+ key = key.gsub(/-/, '_').to_sym if key.is_a? String
92
112
  profile.add key, value
93
113
  end
94
114
  else
data/bin/twiddle CHANGED
@@ -24,6 +24,7 @@
24
24
 
25
25
  require_relative '../lib/rboss'
26
26
  require 'optparse'
27
+ require 'logger'
27
28
  require 'yaml'
28
29
  require 'fileutils'
29
30
 
@@ -131,6 +132,9 @@ end
131
132
  opts.on('-p', '--password PASSWORD', 'Defines the JMX Password') do |password|
132
133
  params[:password] = password
133
134
  end
135
+ opts.on('-v', '--verbose', 'Shows the twiddle commands before execution') do
136
+ params[:log_level] = Logger::DEBUG
137
+ end
134
138
  opts.on("-h", "--help", "Shows this help message") do
135
139
  puts opts; exit
136
140
  end
@@ -139,8 +143,6 @@ opts.parse!(ARGV) rescue abort 'Invalid Option! Use --help or -h for usage help.
139
143
  twiddle = JBoss::Twiddle::Invoker::new params
140
144
  monitor = twiddle.monitor
141
145
 
142
- no_process = mbeans.empty? and commands.empty?
143
-
144
146
  if save
145
147
  config = load_yaml
146
148
  config[save] ||= {}
@@ -154,15 +156,7 @@ if save
154
156
  f = File.open(@servers_file, 'w')
155
157
  YAML::dump(config, f)
156
158
  f.close
157
- if no_process
158
- puts "Configuration saved!"
159
- exit
160
- end
161
- end
162
-
163
- if no_process
164
- puts opts
165
- exit
159
+ puts "Configuration saved!"
166
160
  end
167
161
 
168
162
  def extract resource
@@ -177,6 +171,8 @@ def normalize args
177
171
  end
178
172
  end
179
173
 
174
+ puts opts if mbeans.empty? and commands.empty?
175
+
180
176
  if commands[:set]
181
177
  array = commands[:set]
182
178
  raise "Wrong number of arguments" if array.size != 3
@@ -219,7 +215,6 @@ if commands[:info]
219
215
  :args => normalize(array[1..-1])
220
216
  end
221
217
 
222
-
223
218
  mbeans.each do |mbean_id, resources|
224
219
  puts " - #{defaults[mbean_id][:description]}"
225
220
  if resources.is_a? TrueClass
@@ -24,6 +24,8 @@ require_relative "../file_processor"
24
24
  require_relative "../jboss_path"
25
25
  require_relative "../utils"
26
26
 
27
+ require 'yaml'
28
+
27
29
  module JBoss
28
30
 
29
31
  # A base helper module for JBoss Components
@@ -48,5 +50,9 @@ module JBoss
48
50
  FileProcessor::new :logger => @logger, :var => @jboss
49
51
  end
50
52
 
53
+ def load_yaml resource
54
+ YAML::load_file File::join(File.dirname(__FILE__), "#{resource}.yaml")
55
+ end
56
+
51
57
  end
52
58
  end
@@ -27,7 +27,7 @@ require "rexml/document"
27
27
  include REXML
28
28
 
29
29
  module JBoss
30
- class Web
30
+ class JBossWeb
31
31
  include Component
32
32
 
33
33
  def defaults
@@ -53,7 +53,9 @@ module JBoss
53
53
  :https => {
54
54
  :addres => "${jboss.bind.address}",
55
55
  :port => 8443,
56
+ :protocol => "HTTP/1.1",
56
57
  :scheme => "https",
58
+ 'SSLEnabled' => true,
57
59
  :secure => true,
58
60
  :ssl_protocol => "TLS",
59
61
  :client_auth => false,
@@ -0,0 +1,46 @@
1
+ # The MIT License
2
+ #
3
+ # Copyright (c) 2011 Marcelo Guimarães <ataxexe@gmail.com>
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the "Software"), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in
13
+ # all copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ # THE SOFTWARE.
22
+
23
+ require_relative 'slimming'
24
+
25
+ module JBoss
26
+ # A class for restore slimmed services in a JBoss profile
27
+ #
28
+ # Configuration:
29
+ #
30
+ # See the JBoss::Slimming class for supported services
31
+ #
32
+ # author: Marcelo Guimarães <ataxexe@gmail.com>
33
+ class Restore < JBoss::Slimming
34
+
35
+ def log service
36
+ @logger.info "Enabling #{service}"
37
+ end
38
+
39
+ def handle file
40
+ file = "#{@jboss.profile}/" + file unless file.start_with? '/'
41
+ mv(file + ".rej", file) if File.exist?(file + ".rej")
42
+ end
43
+
44
+ end
45
+
46
+ end
@@ -77,7 +77,7 @@ module JBoss
77
77
  end
78
78
 
79
79
  def parse_config
80
- map = YAML::load File.open(File::join(File.dirname(__FILE__), "run_conf.yaml"))
80
+ map = load_yaml "run_conf"
81
81
 
82
82
  (@config.find_all { |key, value| map.has_key? key.to_s }).each do |key, value|
83
83
  @jvm_args << "-D#{map[key.to_s]}=#{value}"
@@ -32,91 +32,74 @@ module JBoss
32
32
  # Admin Console => :admin_console
33
33
  # Web Console => :web_console
34
34
  # Mail Service => :mail
35
- # Bsh Deployer => :bsh_deployer
35
+ # BeanShell => :bean_shell
36
36
  # Hot Deploy => :hot_deploy
37
- # JUDDI => :juddi
37
+ # UDDI => :uddi
38
38
  # UUID Key Generator => :key_generator
39
39
  # Scheduling => :scheduling
40
40
  # JMX Console => :jmx_console
41
41
  # JBoss WS => :jboss_ws
42
42
  # JMX Remoting => :jmx_remoting
43
43
  # ROOT Page => :root_page
44
- #
45
- # Each service is binded to a remove_$SERVICE_ID method so you can easily add
46
- # more services by modifying this class
44
+ # Management => :management
45
+ # IIOP => :iiop
46
+ # JBoss Web => :jboss_web
47
+ # SNMP => :snmp
48
+ # Profile Service => :profile
49
+ # EJB3 => :ejb3
50
+ # EJB2 => :ejb2
51
+ # JMX Invoker => :jmx_invoker
52
+ # HA HTTP Invoker => :ha_http_invoker
53
+ # Legacy Invoker => :legacy_invoker
54
+ # Transaction => :transaction
55
+ # Remoting => :remoting
56
+ # Properties Service => :properties
57
+ # Database/Datasource => :database
58
+ # JSR-88 => :jsr88
59
+ # XNIO => :xnio
47
60
  #
48
61
  # author: Marcelo Guimarães <ataxexe@gmail.com>
49
62
  class Slimming
50
63
  include Component, FileUtils
51
64
 
52
65
  def configure services_to_remove
53
- @services_to_remove = services_to_remove
66
+ @services_to_remove = services_to_remove.is_a?(Array) ? services_to_remove : [services_to_remove]
67
+ @mapping = {}
68
+ load_yaml('slimming').each do |key, values|
69
+ @mapping[key.to_sym] = values
70
+ end
54
71
  end
55
72
 
56
73
  def process
57
74
  @services_to_remove.each do |service|
58
- message = "remove_#{service}".to_sym
59
- @logger.info "Removing #{service}"
60
- self.send message
75
+ log service
76
+ slim service
61
77
  end
62
78
  end
63
79
 
64
- def remove_hot_deploy
65
- reject("#{@jboss.profile}/deploy/hdscanner-jboss-beans.xml")
66
- end
67
-
68
- def remove_juddi
69
- reject("#{@jboss.profile}/deploy/juddi-service.sar")
70
- end
71
-
72
- def remove_key_generator
73
- reject("#{@jboss.profile}/deploy/uuid-key-generator.sar")
74
- end
75
-
76
- def remove_mail
77
- reject("#{@jboss.profile}/deploy/mail-ra.rar")
78
- reject("#{@jboss.profile}/deploy/mail-service.xml")
79
- end
80
-
81
- def remove_scheduling
82
- reject("#{@jboss.profile}/deploy/scheduler-manager-service.xml")
83
- reject("#{@jboss.profile}/deploy/scheduler-service.xml")
84
- end
85
-
86
- def remove_bsh_deployer
87
- reject("#{@jboss.profile}/deployers/bsh.deployer")
88
- end
89
-
90
- def remove_jboss_ws
91
- reject("#{@jboss.profile}/conf/jax-ws-catalog.xml")
92
- reject("#{@jboss.profile}/conf/props/jbossws-users.properties")
93
- reject("#{@jboss.profile}/conf/props/jbossws-roles.properties")
94
- reject("#{@jboss.profile}/deploy/jbossws.sar")
95
- reject("#{@jboss.profile}/deployers/jbossws.deployer")
96
- end
97
-
98
- def remove_jmx_console
99
- reject("#{@jboss.profile}/deploy/jmx-console.war")
100
- end
101
-
102
- def remove_admin_console
103
- reject("#{@jboss.profile}/deploy/admin-console.war")
104
- end
105
-
106
- def remove_web_console
107
- reject("#{@jboss.profile}/deploy/management")
108
- end
109
-
110
- def remove_jmx_remoting
111
- reject("#{@jboss.profile}/deploy/jmx-remoting.sar")
80
+ def slim service
81
+ sym = service.to_s.gsub(/-/, '_').to_sym
82
+ entry = @mapping[sym]
83
+ method = "remove_#{service}".to_sym
84
+ if respond_to? method
85
+ self.send method
86
+ elsif entry
87
+ entry.each do |file|
88
+ handle file if file.is_a? String
89
+ slim file if file.is_a? Symbol
90
+ end
91
+ else
92
+ raise "Unrecognized service: #{service}"
93
+ end
112
94
  end
113
95
 
114
- def remove_root_page
115
- reject("#{@jboss.profile}/deploy/ROOT.war")
96
+ def log service
97
+ @logger.info "Disabling #{service}"
116
98
  end
117
99
 
118
- def reject file
119
- mv(file, file + ".rej")
100
+ def handle file
101
+ file = "#{@jboss.profile}/" + file unless file.start_with? '/'
102
+ mv(file, file + ".rej") if File.exist? file
120
103
  end
121
104
 
122
105
  end
@@ -0,0 +1,110 @@
1
+ hot_deploy:
2
+ - deploy/hdscanner-jboss-beans.xml
3
+
4
+ uddi:
5
+ - deploy/juddi-service.sar
6
+
7
+ key_generator:
8
+ - deploy/uuid-key-generator.sar
9
+
10
+ mail:
11
+ - deploy/mail-ra.rar
12
+ - deploy/mail-service.xml
13
+
14
+ scheduling:
15
+ - deploy/scheduler-manager-service.xml
16
+ - deploy/scheduler-service.xml
17
+
18
+ bean_shell:
19
+ - deployers/bsh.deployer
20
+
21
+ jboss_ws:
22
+ - conf/jax-ws-catalog.xml
23
+ - conf/props/jbossws-users.properties
24
+ - conf/props/jbossws-roles.properties
25
+ - deploy/jbossws.sar
26
+ - deployers/jbossws.deployer
27
+
28
+ jmx_console:
29
+ - deploy/jmx-console.war
30
+
31
+ admin_console:
32
+ - deploy/admin-console.war
33
+
34
+ web_console:
35
+ - deploy/management
36
+
37
+ jmx_remoting:
38
+ - deploy/jmx-remoting.sar
39
+
40
+ root_page:
41
+ - deploy/ROOT.war
42
+
43
+ management:
44
+ - :admin_console
45
+ - :web_console
46
+ - :root_page
47
+ - :jmx_console
48
+ - deploy/monitoring-service.xml
49
+
50
+ iiop:
51
+ - deploy/iiop-service.xml
52
+
53
+ jboss_web:
54
+ - deploy/jbossweb.sar
55
+ - deployers/jbossweb.deployer
56
+
57
+ snmp:
58
+ - deploy/snmp-adaptor.sar
59
+
60
+ profile:
61
+ - deploy/profileservice-jboss-beans.xml
62
+
63
+ ejb3:
64
+
65
+ - deploy/ejb3-connectors-jboss-beans.xml
66
+ - deploy/ejb3-container-jboss-beans.xml
67
+ - deploy/ejb3-interceptors-aop.xml
68
+ - deploy/ejb3-timerservice-jboss-beans.xml
69
+ - deploy/quartz-ra.rar
70
+ - deployers/ejb3.deployer
71
+ - deployers/ejb3-deployers-jboss-beans.xml
72
+ - deployers/jboss-ejb3-endpoint-deployer.jar
73
+ - deployers/jboss-ejb3-metrics-deployer.jar
74
+
75
+ ejb2:
76
+ - deploy/ejb2-container-jboss-beans.xml
77
+ - deploy/ejb2-timer-service.xml
78
+ - deployers/ejb-deployer-jboss-beans.xml
79
+
80
+ jmx_invoker:
81
+ - jmx-invoker-service.xml
82
+
83
+ ha_http_invoker:
84
+ - deploy/httpha-invoker.sar
85
+
86
+ legacy_invoker:
87
+ - deploy/legacy-invokers-service.xml
88
+
89
+ transaction:
90
+ - deploy/transaction-jboss-beans.xml
91
+ - deploy/transaction-service.xml
92
+
93
+ remoting:
94
+ - deploy/remoting-jboss-beans.xml
95
+
96
+ properties:
97
+ - deploy/properties-service.xml
98
+
99
+ database:
100
+ - deploy/hsqldb-ds.xml
101
+ - deploy/jboss-local-jdbc.rar
102
+ - deploy/jboss-xa-jdbc.jar
103
+ - deploy/sqlexception-service.xml
104
+
105
+ jsr88:
106
+ - deploy/jsr88-service.xml
107
+
108
+ xnio:
109
+ - deploy/xnio-provider.jar
110
+ - deployers/xnio.deployer
@@ -42,6 +42,7 @@ module JBoss
42
42
  @profile_name = params[:profile].to_s
43
43
  @type = params[:type]
44
44
  @version = params[:version]
45
+ @logger = params[:logger]
45
46
  end
46
47
 
47
48
  def to_s
@@ -62,7 +63,9 @@ module JBoss
62
63
 
63
64
  # Encrypts the given password using the SecureIdentityLoginModule
64
65
  def encrypt password
65
- encrypted = `java -cp #{jboss_logging_lib_path}:#{jbosssx_lib_path} org.jboss.resource.security.SecureIdentityLoginModule #{password}`
66
+ command = "java -cp #{jboss_logging_lib_path}:#{jbosssx_lib_path} org.jboss.resource.security.SecureIdentityLoginModule #{password}"
67
+ @logger.debug command if @logger
68
+ encrypted = `#{command}`
66
69
  encrypted.chomp.split(/:/)[1].strip
67
70
  end
68
71
 
@@ -123,7 +123,7 @@ module JBoss
123
123
  @logger = @opts[:logger]
124
124
  unless @logger
125
125
  @logger = Logger::new STDOUT
126
- @logger.level = opts[:log_level] if opts[:log_level]
126
+ @logger.level = opts[:log_level] || Logger::INFO
127
127
  formatter = Logger::Formatter.new
128
128
 
129
129
  def formatter.call(severity, time, program_name, message)
@@ -137,7 +137,8 @@ module JBoss
137
137
  @jboss = JBoss::Path::new @jboss_home,
138
138
  :profile => @profile,
139
139
  :type => @opts[:type],
140
- :version => @opts[:version]
140
+ :version => @opts[:version],
141
+ :logger => @logger
141
142
  initialize_components
142
143
  end
143
144
 
@@ -299,9 +300,9 @@ module JBoss
299
300
  :path => "#{@base_dir}/resources/mod_cluster.sar",
300
301
  }
301
302
 
302
- register :jboss_web,
303
+ register :jbossweb,
303
304
 
304
- :type => JBoss::Web,
305
+ :type => JBoss::JBossWeb,
305
306
  :priority => @@setup
306
307
 
307
308
  register :run_conf,
@@ -324,6 +325,11 @@ module JBoss
324
325
  :type => JBoss::Slimming,
325
326
  :priority => @@post_setup
326
327
 
328
+ register :restore,
329
+
330
+ :type => JBoss::Restore,
331
+ :priority => @@post_setup + 5
332
+
327
333
  register :init_script,
328
334
 
329
335
  :type => JBoss::ServiceScript,
@@ -20,6 +20,8 @@
20
20
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
21
  # THE SOFTWARE.
22
22
 
23
+ require 'logger'
24
+
23
25
  module JBoss
24
26
  module Twiddle
25
27
  class Invoker
@@ -47,6 +49,19 @@ module JBoss
47
49
  @password = params[:password]
48
50
 
49
51
  @command = "#{@jboss_home}/bin/twiddle.sh -s #{@server} -u '#{@user}' -p '#{@password}'"
52
+
53
+ @logger = params[:logger]
54
+ unless @logger
55
+ @logger = Logger::new STDOUT
56
+ @logger.level = params[:log_level] || Logger::INFO
57
+ formatter = Logger::Formatter.new
58
+
59
+ def formatter.call(severity, time, program_name, message)
60
+ "#{severity} : #{message}\n"
61
+ end
62
+
63
+ @logger.formatter = formatter
64
+ end
50
65
  end
51
66
 
52
67
  def home
@@ -58,7 +73,9 @@ module JBoss
58
73
  end
59
74
 
60
75
  def execute command, *arguments
61
- result = `#{shell command, arguments}`.chomp
76
+ exec = shell command, arguments
77
+ @logger.debug exec
78
+ result = `#{exec}`.chomp
62
79
  return nil if result["ERROR [Twiddle] Command failure"]
63
80
  result
64
81
  end
data/lib/rboss/version.rb CHANGED
@@ -21,5 +21,5 @@
21
21
  # THE SOFTWARE.
22
22
 
23
23
  module RBoss
24
- VERSION = "0.2.4"
24
+ VERSION = "0.3.0"
25
25
  end
@@ -0,0 +1,101 @@
1
+ # The MIT License
2
+ #
3
+ # Copyright (c) 2011 Marcelo Guimarães <ataxexe@gmail.com>
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the "Software"), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in
13
+ # all copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ # THE SOFTWARE.
22
+
23
+ require_relative 'test_helper'
24
+
25
+ class JBossWebTest < Test::Unit::TestCase
26
+
27
+ def test_http_connector
28
+ for_test_with :all do |profile|
29
+ profile.add :jbossweb,
30
+ :connectors => {
31
+ :http => {
32
+ :max_threads => 600
33
+ }
34
+ }
35
+ end
36
+
37
+ for_assertions_with :all do |jboss|
38
+ xml = xml(jboss)
39
+ max_threads = XPath::first xml, "//Connector[@port='8080'][@protocol='HTTP/1.1'][@maxThreads='600']"
40
+ assert max_threads
41
+ end
42
+
43
+ do_test
44
+ end
45
+
46
+ def test_https_connector
47
+ for_test_with :all do |profile|
48
+ profile.add :jbossweb,
49
+ :connectors => {
50
+ :https => {
51
+ :max_threads => 600
52
+ }
53
+ }
54
+ end
55
+
56
+ for_assertions_with :all do |jboss|
57
+ xml = xml(jboss)
58
+ max_threads = XPath::first xml, "//Connector[@port='8443'][@protocol='HTTP/1.1'][@maxThreads='600']"
59
+ assert max_threads
60
+ end
61
+
62
+ do_test
63
+ end
64
+
65
+ def test_ajp_connector
66
+ for_test_with :all do |profile|
67
+ profile.add :jbossweb,
68
+ :connectors => {
69
+ :ajp => {
70
+ :max_threads => 600
71
+ }
72
+ }
73
+ end
74
+
75
+ for_assertions_with :all do |jboss|
76
+ xml = xml(jboss)
77
+ max_threads = XPath::first xml, "//Connector[@port='8009'][@protocol='AJP/1.3'][@maxThreads='600']"
78
+ assert max_threads
79
+ end
80
+
81
+ do_test
82
+ end
83
+
84
+
85
+ def test_engine
86
+ for_test_with :all do |profile|
87
+ profile.add :jbossweb,
88
+ :jvm_route => 'route'
89
+ end
90
+ for_assertions_with :all do |jboss|
91
+ xml = xml(jboss)
92
+ jvm_route = XPath::first xml, "//Engine[@name='jboss.web'][@jvmRoute='route']"
93
+ assert jvm_route
94
+ end
95
+ end
96
+
97
+ def xml(jboss)
98
+ REXML::Document::new File::new("#{jboss.profile}/deploy/jbossweb.sar/server.xml")
99
+ end
100
+
101
+ end
data/test/mbean_test.rb CHANGED
@@ -27,9 +27,11 @@ class MBeanTest < Test::Unit::TestCase
27
27
 
28
28
  def twiddle
29
29
  twiddle = Object.new
30
- def twiddle.invoke command, *args
30
+
31
+ def twiddle.execute command, *args
31
32
  "#{command} #{args.join " "}".strip
32
33
  end
34
+
33
35
  twiddle
34
36
  end
35
37
 
@@ -46,8 +48,8 @@ class MBeanTest < Test::Unit::TestCase
46
48
 
47
49
  def test_invoke
48
50
  mbean = JBoss::MBean::new :pattern => 'jboss.system:type=Server', :twiddle => twiddle
49
- assert_equal "invoke jboss.system:type=Server shutdown", mbean.shutdown
50
- assert_equal "invoke jboss.system:type=Server traceInstructions true", mbean.traceInstructions(true)
51
+ assert_equal "invoke jboss.system:type=Server shutdown", mbean.invoke(:shutdown)
52
+ assert_equal "invoke jboss.system:type=Server traceInstructions true", mbean.invoke(:traceInstructions, true)
51
53
  end
52
54
 
53
55
  end
data/test/test_helper.rb CHANGED
@@ -34,10 +34,9 @@ module TestHelper
34
34
 
35
35
  def all
36
36
  @all ||= {
37
- :org => [5.1, 6.0],
38
- :eap => [5.0, 5.1],
39
- :soa_p => 5,
40
- :epp => 5.1
37
+ :org => [5.1],
38
+ :eap => [5.1],
39
+ :soa_p => 5
41
40
  }
42
41
  @all
43
42
  end
@@ -93,9 +92,14 @@ module TestHelper
93
92
  :profile => :rboss,
94
93
  :logger => @logger
95
94
  @jboss = @jboss_profile.jboss
96
- blocks[:configure].call @jboss_profile
97
- @jboss_profile.create
98
- blocks[:assertion].call @jboss
95
+ block = blocks[:configure]
96
+ if block
97
+ block.call @jboss_profile
98
+ puts "Creating #{type} #{version}"
99
+ @jboss_profile.create
100
+ puts "Running assertion block"
101
+ blocks[:assertion].call @jboss
102
+ end
99
103
  end
100
104
 
101
105
  def create_file_processor
data/test/test_suite.rb CHANGED
@@ -24,12 +24,13 @@ require 'test/unit'
24
24
  require 'test/unit/testsuite'
25
25
  require_relative 'deploy_folder_test'
26
26
  require_relative 'datasource_test'
27
+ require_relative 'jbossweb_test'
27
28
  require_relative 'mbean_test'
28
29
 
29
30
  class TestSuite < Test::Unit::TestSuite
30
31
 
31
32
  def initialize
32
- self << DeployFolderTest << DatasourceTest << MBeanTest
33
+ self << DeployFolderTest << DatasourceTest << JBossWebTest << MBeanTest
33
34
  end
34
35
 
35
36
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: rboss
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.2.4
5
+ version: 0.3.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Ataxexe
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-09-06 00:00:00 Z
13
+ date: 2011-09-29 00:00:00 Z
14
14
  dependencies: []
15
15
 
16
16
  description: |-
@@ -45,10 +45,12 @@ files:
45
45
  - lib/rboss/components/org/jmx.rb
46
46
  - lib/rboss/components/profile_folder.rb
47
47
  - lib/rboss/components/resource.rb
48
+ - lib/rboss/components/restore_slimming.rb
48
49
  - lib/rboss/components/run_conf.rb
49
50
  - lib/rboss/components/run_conf.yaml
50
51
  - lib/rboss/components/service_script.rb
51
52
  - lib/rboss/components/slimming.rb
53
+ - lib/rboss/components/slimming.yaml
52
54
  - lib/rboss/components/soa-p/hypersonic_replacer.rb
53
55
  - lib/rboss/components/soa-p/jmx.rb
54
56
  - lib/rboss/components/xadatasource.rb
@@ -69,6 +71,7 @@ files:
69
71
  - rboss.gemspec
70
72
  - test/datasource_test.rb
71
73
  - test/deploy_folder_test.rb
74
+ - test/jbossweb_test.rb
72
75
  - test/mbean_test.rb
73
76
  - test/test_helper.rb
74
77
  - test/test_suite.rb
@@ -102,6 +105,7 @@ summary: A Ruby way to do a JBoss work!
102
105
  test_files:
103
106
  - test/datasource_test.rb
104
107
  - test/deploy_folder_test.rb
108
+ - test/jbossweb_test.rb
105
109
  - test/mbean_test.rb
106
110
  - test/test_helper.rb
107
111
  - test/test_suite.rb