rboss 0.9.1 → 0.9.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/.idea/encodings.xml +5 -0
  3. data/.idea/misc.xml +5 -0
  4. data/.idea/modules.xml +9 -0
  5. data/.idea/rboss.iml +65 -0
  6. data/.idea/scopes/scope_settings.xml +5 -0
  7. data/.idea/vcs.xml +7 -0
  8. data/Gemfile +2 -2
  9. data/README.md +34 -397
  10. data/bin/rboss-cli +77 -28
  11. data/lib/rboss.rb +10 -12
  12. data/lib/rboss/cli/invoker.rb +31 -18
  13. data/lib/rboss/cli/mappings.rb +11 -10
  14. data/lib/rboss/cli/mappings/resources/connector.yaml +2 -2
  15. data/lib/rboss/cli/mappings/resources/datasource.yaml +5 -5
  16. data/lib/rboss/cli/mappings/resources/deployment-scanner.yaml +3 -3
  17. data/lib/rboss/cli/mappings/resources/interface.yaml +2 -2
  18. data/lib/rboss/cli/mappings/resources/jdbc-driver.yaml +12 -0
  19. data/lib/rboss/cli/mappings/resources/jms-queue.yaml +44 -0
  20. data/lib/rboss/cli/mappings/resources/runtime.yaml +34 -0
  21. data/lib/rboss/cli/mappings/resources/server.yaml +8 -8
  22. data/lib/rboss/cli/resource.rb +60 -37
  23. data/lib/rboss/cli/result_parser.rb +29 -5
  24. data/lib/rboss/plaftorm.rb +2 -25
  25. data/lib/rboss/utils.rb +2 -8
  26. data/lib/rboss/version.rb +1 -1
  27. data/lib/rboss/view/colorizers.rb +4 -2
  28. data/lib/rboss/view/formatters.rb +37 -0
  29. data/lib/rboss/view/table_builder.rb +2 -2
  30. data/rboss-cli-bash-completion +82 -0
  31. data/rboss.gemspec +12 -12
  32. data/rboss.iml +6 -7
  33. data/rboss.ipr +2 -11
  34. metadata +23 -53
  35. data/bin/rboss-profile +0 -125
  36. data/bin/rboss-twiddle +0 -204
  37. data/lib/rboss/bin/command_actions.rb +0 -125
  38. data/lib/rboss/cli/mappings/resources/jdbc_driver.yaml +0 -12
  39. data/lib/rboss/component_processor.rb +0 -179
  40. data/lib/rboss/components/component.rb +0 -58
  41. data/lib/rboss/components/datasource.rb +0 -179
  42. data/lib/rboss/components/deploy_folder.rb +0 -104
  43. data/lib/rboss/components/hypersonic_replacer.rb +0 -58
  44. data/lib/rboss/components/jbossweb.rb +0 -119
  45. data/lib/rboss/components/jmx.rb +0 -88
  46. data/lib/rboss/components/mod_cluster.rb +0 -81
  47. data/lib/rboss/components/org/6.0/deploy_folder.rb +0 -33
  48. data/lib/rboss/components/org/jmx.rb +0 -59
  49. data/lib/rboss/components/profile_folder.rb +0 -44
  50. data/lib/rboss/components/resource.rb +0 -52
  51. data/lib/rboss/components/restore_slimming.rb +0 -46
  52. data/lib/rboss/components/run_conf.rb +0 -90
  53. data/lib/rboss/components/run_conf.yaml +0 -22
  54. data/lib/rboss/components/service_script.rb +0 -55
  55. data/lib/rboss/components/slimming.rb +0 -107
  56. data/lib/rboss/components/slimming.yaml +0 -110
  57. data/lib/rboss/components/soa-p/hypersonic_replacer.rb +0 -79
  58. data/lib/rboss/components/soa-p/jmx.rb +0 -47
  59. data/lib/rboss/components/xadatasource.rb +0 -67
  60. data/lib/rboss/file_processor.rb +0 -111
  61. data/lib/rboss/jboss_path.rb +0 -74
  62. data/lib/rboss/jboss_profile.rb +0 -350
  63. data/lib/rboss/resources/jboss_init_redhat.sh.erb +0 -140
  64. data/lib/rboss/resources/mod_cluster.sar/META-INF/mod_cluster-jboss-beans.xml +0 -282
  65. data/lib/rboss/resources/mod_cluster.sar/mod_cluster-1.1.2.Final.jar +0 -0
  66. data/lib/rboss/resources/run.conf.bat.erb +0 -60
  67. data/lib/rboss/resources/run.conf.erb +0 -62
  68. data/lib/rboss/twiddle.rb +0 -25
  69. data/lib/rboss/twiddle/base_monitor.rb +0 -88
  70. data/lib/rboss/twiddle/mbean.rb +0 -148
  71. data/lib/rboss/twiddle/monitor.rb +0 -222
  72. data/lib/rboss/twiddle/twiddle.rb +0 -87
@@ -1,58 +0,0 @@
1
- # The MIT License
2
- #
3
- # Copyright (c) 2011-2012 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 "../file_processor"
24
- require_relative "../jboss_path"
25
- require_relative "../utils"
26
-
27
- require 'yaml'
28
-
29
- module RBoss
30
-
31
- # A base helper module for JBoss Components
32
- #
33
- # author: Marcelo Guimarães <ataxexe@gmail.com>
34
- module Component
35
-
36
- def initialize jboss, logger, config
37
- @jboss = jboss
38
- @logger = logger
39
- config = defaults.merge! config if self.respond_to? :defaults
40
- configure(config)
41
- end
42
-
43
- def configure config
44
- @config = config
45
- end
46
-
47
- # Creates a FileProcessor using the same logger and
48
- # jboss path as the variable
49
- def new_file_processor
50
- RBoss::FileProcessor::new :logger => @logger, :var => @jboss
51
- end
52
-
53
- def load_yaml resource
54
- YAML::load_file File::join(File.dirname(__FILE__), "#{resource}.yaml")
55
- end
56
-
57
- end
58
- end
@@ -1,179 +0,0 @@
1
- # The MIT License
2
- #
3
- # Copyright (c) 2011-2012 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 "component"
24
-
25
- require "logger"
26
- require "rexml/document"
27
-
28
- include REXML
29
-
30
- module RBoss
31
-
32
- # A class to configure a JBoss Datasource.
33
- #
34
- # For converting the property (if it is a Symbol), the above rules are used taking by example a
35
- # value ":database_url":
36
- # a. The value "database_url"
37
- # b. The value "database-url"
38
- # c. The value "DatabaseUrl"
39
- # d. The value "DATABASE_URL"
40
- #
41
- # The key for finding the correct datasource is the configuration attribute :type, which is used
42
- # to search in $JBOSS_HOME/docs/examples/jca for the file.
43
- #
44
- # Any key that is not found in the datasource template will be added. If it is a Symbol, the underlines will be
45
- # converted to hyphens.
46
- #
47
- # For saving the file, the configuration :name will be used in the form "${name}-ds.xml".
48
- #
49
- # Configuration:
50
- #
51
- # :folder => a folder where this datasource will be saved (default: $JBOSS_HOME/server/$CONFIG/deploy)
52
- # if a relative path is given, it will be appended to default value
53
- # :encrypt => a flag to indicate if the password should be encrypted (default: false)
54
- # :type => the type of the datasource
55
- # :name => a name for saving the file (default: :type)
56
- # :attributes => a Hash with the attributes that will be changed in template (the only required is :jndi_name)
57
- # Any attribute that is not present in datasource xml will be created using this template: <key>value</key>.
58
- #
59
- # author: Marcelo Guimarães <ataxexe@gmail.com>
60
- class Datasource
61
- include Component
62
-
63
- attr_accessor :jndi_name, :attributes, :type, :name
64
-
65
- def defaults
66
- {
67
- :folder => "#{@jboss.profile}/deploy",
68
- :encrypt => false,
69
- :attributes => {}
70
- }
71
- end
72
-
73
- def configure config
74
- config[:type] = :mssql if config[:type].to_s == "sqlserver"
75
- @type = config[:type].to_s.gsub /_/, '-'
76
- @name = config[:name]
77
- @name ||= @type.to_s
78
- @folder = config[:folder].to_s
79
- @folder = "#{@jboss.profile}/#{@folder}" unless @folder.start_with? '/'
80
- @attributes = config[:attributes]
81
- @encrypt = config[:encrypt]
82
- @jndi_name = @attributes.delete :jndi_name
83
- end
84
-
85
- def process
86
- if @encrypt
87
- @user = @attributes.delete :user
88
- @user = @attributes.delete :user_name unless @user
89
- @password = @jboss.encrypt @attributes.delete(:password)
90
- end
91
- processor = new_file_processor
92
- processor.with "#{@jboss.home}/docs/examples/jca/#{@type}-ds.xml", :xml do |action|
93
- action.to_process do |xml, jboss|
94
- element = XPath.first xml, "//jndi-name"
95
- element.text = @jndi_name
96
- configure_datasource xml
97
-
98
- if @encrypt
99
- security_domain = Element::new "security-domain"
100
- security_domain.text = @name
101
-
102
- xml.root.elements[1] << security_domain
103
- end
104
- action.copy_to "#{@folder}/#{@name}-ds.xml"
105
- xml
106
- end
107
- end
108
- @logger.info "Creating datasource #{@name}"
109
- processor.process
110
- if @encrypt
111
- create_login_module
112
- create_login_config
113
- end
114
- end
115
-
116
- def find xml, key
117
- if key.is_a? Symbol
118
- key = key.to_s
119
- [key, key.gsub(/_/, '-'), key.camelize, key.upcase].each do |k|
120
- element = XPath.first xml, yield(k)
121
- return element if element
122
- end
123
- else
124
- XPath.first xml, yield(key)
125
- end
126
- nil
127
- end
128
-
129
- def configure_datasource xml
130
- if @encrypt
131
- xml.root.delete_element "//user-name"
132
- xml.root.delete_element "//password"
133
- @service = "LocalTxCM"
134
- end
135
- @attributes.each do |key, value|
136
- element = find(xml, key) { |k| "//#{k}" }
137
-
138
- if element
139
- element.text = value
140
- else
141
- insert_attribute xml, key, value
142
- end
143
- end
144
- end
145
-
146
- def insert_attribute xml, key, value
147
- if key.is_a? Symbol
148
- element = Element::new key.to_s.gsub /_/, '-'
149
- else
150
- element = Element::new key
151
- end
152
- element.text = value
153
- xml.root.elements[1] << element
154
- end
155
-
156
- def create_login_config
157
- File.open("#{@folder}/#{@name}.login-module.xml", 'w+') { |f| f.write @login_module }
158
- end
159
-
160
- def create_login_module
161
- @login_module = Document::new <<XML
162
- <policy>
163
- <application-policy name='#{@name}'>
164
- <authentication>
165
- <login-module code='org.jboss.resource.security.SecureIdentityLoginModule' flag='required'>
166
- <module-option name='username'>#{@user}</module-option>
167
- <module-option name='password'>#{@password}</module-option>
168
- <module-option name='managedConnectionFactoryName'>jboss.jca:name=#{@jndi_name},service=#{@service}</module-option>
169
- </login-module>
170
- </authentication>
171
- </application-policy>
172
- </policy>
173
- XML
174
- end
175
-
176
-
177
- end
178
-
179
- end
@@ -1,104 +0,0 @@
1
- # The MIT License
2
- #
3
- # Copyright (c) 2011-2012 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 "component"
24
-
25
- require "rexml/document"
26
-
27
- include REXML
28
-
29
- module RBoss
30
-
31
- # A class to add deploy folders to a JBoss Profile.
32
- #
33
- #
34
- # Note: there is a bug in JBoss (https://issues.jboss.org/browse/JBAS-9387) that affect
35
- # this class if profile.xml needs to be changed (deploy folder outside
36
- # $JBOSS_HOME/server/$PROFILE/deploy)
37
- #
38
- # author: Marcelo Guimarães <ataxexe@gmail.com>
39
- class DeployFolder
40
- include Component, FileUtils
41
-
42
- def configure folder
43
- @folder = folder.to_s
44
-
45
- @absolute_path = @folder.start_with? '/'
46
- @outside_deploy = (!@folder.start_with?('deploy') and not @absolute_path)
47
-
48
- @configure_vsf_and_profile = (@absolute_path or @outside_deploy)
49
-
50
- @path = @absolute_path ? @folder : "#{@jboss.profile}/#{@folder}"
51
-
52
- @folder = "${jboss.server.home.url}#{@folder}" if @outside_deploy
53
- @folder = "file://#{@folder}" if @absolute_path
54
- end
55
-
56
- def process
57
- @logger.info "Creating deploy folder: #{@path}"
58
- mkdir_p @path
59
-
60
- if @configure_vsf_and_profile
61
- @logger.warn "Please change your profile.xml file according to this issue <https://issues.jboss.org/browse/JBAS-9387>"
62
- configure_vfs
63
- configure_profile
64
- end
65
- end
66
-
67
- def configure_profile
68
- @logger.info "Updating profile.xml"
69
- processor = new_file_processor
70
- processor.with "#{@jboss.profile}/conf/bootstrap/profile.xml", :xml do |action|
71
- action.to_process do |xml, jboss|
72
- element = XPath.first xml, "//property[@name='applicationURIs']"
73
- element = XPath.first element, "//list[@elementClass='java.net.URI']"
74
- deploy = Element::new "value"
75
- deploy.text = @folder
76
- element << deploy
77
- xml
78
- end
79
- end
80
- processor.process
81
- end
82
-
83
- def configure_vfs
84
- @logger.info "Updating vfs.xml"
85
- processor = new_file_processor
86
- processor.with "#{@jboss.profile}/conf/bootstrap/vfs.xml", :xml do |action|
87
- action.to_process do |xml, jboss|
88
- map = XPath.first xml, "//map[@keyClass='java.net.URL']"
89
- entry = Document::new <<XML
90
- <entry>
91
- <key>#{@folder}</key>
92
- <value><inject bean="VfsNamesExceptionHandler"/></value>
93
- </entry>
94
- XML
95
- map << entry
96
- xml
97
- end
98
- end
99
- processor.process
100
- end
101
-
102
- end
103
-
104
- end
@@ -1,58 +0,0 @@
1
- # The MIT License
2
- #
3
- # Copyright (c) 2011-2012 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 "datasource"
24
- require_relative "component"
25
-
26
- module RBoss
27
- # A class to replace the shipped Hypersonic datasource for a JBoss profile.
28
- #
29
- # Configuration:
30
- #
31
- # The configuration can be a JBossDatasource or a Hash to configure a JBossDatasource.
32
- #
33
- # author: Marcelo Guimarães <ataxexe@gmail.com>
34
- class HypersonicReplacer
35
- include Component, FileUtils
36
-
37
- def configure config
38
- @datasource = config if config.is_a? Datasource
39
- @datasource ||= Datasource::new(@jboss, @logger, config)
40
- @datasource.jndi_name = "DefaultDS"
41
- end
42
-
43
- def process
44
- @logger.info "Removing Hypersonic..."
45
- rm_f "#{@jboss.profile}/deploy/hsqldb-ds.xml"
46
- rm_f "#{@jboss.profile}/deploy/messaging/hsqldb-persistence-service.xml"
47
-
48
- @datasource.process
49
-
50
- @logger.info "Copying persistence service template for #{@datasource.type}..."
51
- # For postgres, the jms example filename differs from jca
52
- @datasource.type = :postgresql if @datasource.type.to_s == "postgres"
53
- cp "#{@jboss.home}/docs/examples/jms/#{@datasource.type}-persistence-service.xml", "#{@jboss.profile}/deploy/messaging"
54
- end
55
-
56
- end
57
-
58
- end
@@ -1,119 +0,0 @@
1
- # The MIT License
2
- #
3
- # Copyright (c) 2011-2012 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 'component'
24
-
25
- require "rexml/document"
26
-
27
- include REXML
28
-
29
- module RBoss
30
- class JBossWeb
31
- include Component
32
-
33
- def defaults
34
- {
35
- :connectors => [],
36
- :jvm_route => nil
37
- }
38
- end
39
-
40
- def connector_defaults
41
- {
42
- :http => {
43
- :address => "${jboss.bind.address}",
44
- :protocol => "HTTP/1.1",
45
- :port => 8080
46
- },
47
- :ajp => {
48
- :address => "${jboss.bind.address}",
49
- :protocol => "AJP/1.3",
50
- :port => 8009,
51
- :redirect_port => 8443
52
- },
53
- :https => {
54
- :addres => "${jboss.bind.address}",
55
- :port => 8443,
56
- :protocol => "HTTP/1.1",
57
- :scheme => "https",
58
- 'SSLEnabled' => true,
59
- :secure => true,
60
- :ssl_protocol => "TLS",
61
- :client_auth => false,
62
- :keystore_file => '${jboss.server.home.dir}/conf/.keystore'
63
- },
64
- :other => {
65
- :address => "${jboss.bind.address}",
66
- :protocol => "HTTP/1.1"
67
- }
68
- }
69
- end
70
-
71
- def process
72
- @processor = new_file_processor
73
- @actions = []
74
- configure_connectors
75
- configure_engine if @config[:jvm_route]
76
- @processor.with "#{@jboss.profile}/deploy/jbossweb.sar/server.xml", :xml do |action|
77
- action.to_process do |xml, jboss|
78
- @actions.each do |block|
79
- xml = block.call(xml, jboss)
80
- end
81
- xml
82
- end
83
- end
84
- @processor.process
85
- end
86
-
87
- def configure_connectors
88
- @config[:connectors].each do |type, attributes|
89
- defaults = connector_defaults[type.to_sym]
90
- defaults ||= connector_defaults[:other]
91
- attributes = defaults.merge attributes
92
- configure_connector attributes, defaults
93
- end
94
- end
95
-
96
- def configure_connector attributes, defaults
97
- @actions << lambda do |xml, jboss|
98
- tag = XPath.first xml, "//Connector[@protocol='#{defaults[:protocol]}'][@port='#{defaults[:port]}']"
99
- unless tag
100
- tag = Element::new "Connector"
101
- xml.insert_after "//Connector", tag
102
- end
103
- attributes.each do |key, value|
104
- key = key.to_s.camelize.uncapitalize if key.is_a? Symbol
105
- tag.attributes[key] = value.to_s
106
- end
107
- xml
108
- end
109
- end
110
-
111
- def configure_engine
112
- @actions << lambda do |xml, jboss|
113
- engine = XPath.first xml, "//Engine[@name='jboss.web']"
114
- engine.attributes["jvmRoute"] = @config[:jvm_route]
115
- xml
116
- end
117
- end
118
- end
119
- end