Class: JVMArgs::Args
- Inherits:
-
Object
- Object
- JVMArgs::Args
- Defined in:
- lib/jvmargs/args.rb
Instance Method Summary collapse
- #[](key) ⇒ Object
- #add(*args) ⇒ Object
- #add_rule(rule_name, &block) ⇒ Object
- #heap_size(size) ⇒ Object
-
#initialize(*initial_args, &block) ⇒ Args
constructor
A new instance of Args.
- #jmx(boolean) ⇒ Object
- #newgen(size) ⇒ Object
- #parse_args(args) ⇒ Object
- #parse_named_args(named_args) ⇒ Object
- #permgen(size) ⇒ Object
- #process_rules ⇒ Object
- #set_default_heap_size ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(*initial_args, &block) ⇒ Args
Returns a new instance of Args.
4 5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/jvmargs/args.rb', line 4 def initialize(*initial_args,&block) @args = Hash.new @rules = JVMArgs::Rules.new Types.each {|type| @args[type] = Hash.new } server_arg = JVMArgs::Standard.new("-server") @args[:standard][server_arg.key] = server_arg set_default_heap_size # in case user passed in an array initial_args.flatten! parse_args(initial_args) unless initial_args.empty? self.instance_exec &block if block end |
Instance Method Details
#[](key) ⇒ Object
17 18 19 |
# File 'lib/jvmargs/args.rb', line 17 def [](key) @args[key] end |
#add(*args) ⇒ Object
21 22 23 24 |
# File 'lib/jvmargs/args.rb', line 21 def add(*args) args.flatten! parse_args(args) end |
#add_rule(rule_name, &block) ⇒ Object
115 116 117 |
# File 'lib/jvmargs/args.rb', line 115 def add_rule(rule_name, &block) @rules.add(rule_name, block) end |
#heap_size(size) ⇒ Object
98 99 100 101 102 |
# File 'lib/jvmargs/args.rb', line 98 def heap_size(size) size_ram = JVMArgs::Util.parse_ram_size_to_m(size) @args[:nonstandard]["Xmx"] = JVMArgs::NonStandard.new("-Xmx#{size_ram}") @args[:nonstandard]["Xms"] = JVMArgs::NonStandard.new("-Xms#{size_ram}") end |
#jmx(boolean) ⇒ Object
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/jvmargs/args.rb', line 82 def jmx(boolean) if boolean [ "-Djava.rmi.server.hostname=127.0.0.1", "-Djava.net.preferIPv4Stack=true", "-Dcom.sun.management.jmxremote", "-Dcom.sun.management.jmxremote.port=9000", "-Dcom.sun.management.jmxremote.authenticate=false", "-Dcom.sun.management.jmxremote.ssl=false" ].each do |arg| directive = JVMArgs::Directive.new arg @args[:directive][directive.key] = directive end end end |
#newgen(size) ⇒ Object
109 110 111 112 113 |
# File 'lib/jvmargs/args.rb', line 109 def newgen(size) size_ram = JVMArgs::Util.convert_to_m(size) # @args[:unstable]["NewSize"] = JVMArgs::Unstable.new("-XX:NewSize=#{size_ram}") @args[:unstable]["MaxNewSize"] = JVMArgs::Unstable.new("-XX:MaxNewSize=#{size_ram}") end |
#parse_args(args) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/jvmargs/args.rb', line 32 def parse_args(args) args.each do |arg| type = nil jvm_arg = case arg when /^-?XX.*/ type = :unstable JVMArgs::Unstable.new(arg) when /^-?X.*/ type = :nonstandard JVMArgs::NonStandard.new(arg) when /^-?D.*/ type = :directive JVMArgs::Directive.new(arg) else type = :standard JVMArgs::Standard.new(arg) end @args[type][jvm_arg.key] = jvm_arg end process_rules end |
#parse_named_args(named_args) ⇒ Object
73 74 75 76 77 78 79 80 |
# File 'lib/jvmargs/args.rb', line 73 def parse_named_args(named_args) named_args.each do |k,v| case k.to_sym when :jmx add_default_jmx end end end |
#permgen(size) ⇒ Object
104 105 106 107 |
# File 'lib/jvmargs/args.rb', line 104 def permgen(size) size_ram = JVMArgs::Util.convert_to_m(size) @args[:unstable]["MaxPermSize"] = JVMArgs::Unstable.new("-XX:MaxPermSize=#{size_ram}") end |
#process_rules ⇒ Object
26 27 28 29 30 |
# File 'lib/jvmargs/args.rb', line 26 def process_rules @rules.rules.each do |rule| @rules.send(rule, @args) end end |
#set_default_heap_size ⇒ Object
54 55 56 57 58 59 60 61 |
# File 'lib/jvmargs/args.rb', line 54 def set_default_heap_size if defined? node total_ram = node['memory']['total'].sub(/kB/, '') else total_ram = (JVMArgs::Util.get_system_ram_m.sub(/M/,'').to_i * 0.4).to_i end @args[:nonstandard]['Xmx'] = JVMArgs::NonStandard.new("Xmx#{total_ram}M") end |
#to_s ⇒ Object
63 64 65 66 67 68 69 70 71 |
# File 'lib/jvmargs/args.rb', line 63 def to_s process_rules args_str = "" Types.each do |type| type_str = @args[type].map {|k,v| v.to_s } args_str << " " + type_str.join(' ') + " " end args_str end |