Module: LogStash::Util::JavaVersion
- Defined in:
- lib/logstash/util/java_version.rb
Class Method Summary collapse
- 
  
    
      .bad_java_version?(version_string)  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    Determine if the given java version string is a bad version of java If it is, return true, if it isn’t return false. 
- 
  
    
      .parse_java_version(version_string)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Takes a string of a java version ex: “1.8.0_24-beta” and returns a parsed map of the components. 
- 
  
    
      .version  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Return the current java version string. 
Class Method Details
.bad_java_version?(version_string) ⇒ Boolean
Determine if the given java version string is a bad version of java If it is, return true, if it isn’t return false. Accepts nil, returning nil.
| 38 39 40 41 42 43 44 45 46 47 48 49 | # File 'lib/logstash/util/java_version.rb', line 38 def self.bad_java_version?(version_string) return nil if version_string.nil? parsed = parse_java_version(version_string) return false unless parsed if parsed[:major] == 1 && parsed[:minor] < 8 true else false end end | 
.parse_java_version(version_string) ⇒ Object
Takes a string of a java version ex: “1.8.0_24-beta” and returns a parsed map of the components. nil inputs will be returned as nil.
| 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | # File 'lib/logstash/util/java_version.rb', line 13 def self.parse_java_version(version_string) return nil if version_string.nil? # Crazy java versioning rules @ http://www.oracle.com/technetwork/java/javase/versioning-naming-139433.html # The regex below parses this all correctly http://rubular.com/r/sInQc3Nc7f match = version_string.match(/\A(\d+)\.(\d+)\.(\d+)(_(\d+))?(-(.+))?\Z/) return nil unless match major, minor, patch, ufull, update, bfull, build = match.captures { :full => version_string, :major => major.to_i, :minor => minor.to_i, :patch => patch.to_i, :update => update.to_i, # this is always coerced to an int (a nil will be zero) to make comparisons easier :build => build # not an integer, could be b06 for instance!, } end | 
.version ⇒ Object
Return the current java version string. Returns nil if this is a non-java platform (e.g. MRI).
| 5 6 7 8 | # File 'lib/logstash/util/java_version.rb', line 5 def self.version return nil unless LogStash::Environment.jruby? java.lang.System.getProperty("java.runtime.version") end |