Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Java 11 support - backport to 6x #10382

Merged
merged 1 commit into from
Feb 5, 2019
Merged

Commits on Feb 5, 2019

  1. Java 11 support (elastic#10279)

    * bump jruby to 9.2
    
    * don't rely on logstash-base docker image
    
    * work around webmock ruby 2.5 support
    
    * ensure data folder exists in docker
    
    * change fixnum and bignum to integer
    
    * FileUtils.rmdir to rm_rf
    
    this is because from 2.3 to 2.5 FileUtils.rmdir will throw an exception
    if the directory isn't empty. On 2.3 the operation will just not delete
    the directory silently.
    
    * bump jruby to 9.2.5.0 and fix test
    
    * make rake default task since prepare pack needs it
    
    * Resolve compiler warnings (elastic#10247)
    
    There are 3 types of compiler warnings that are either resolved or suppressed:
    
    1. Rawtypes: In JRuby 9.2, `RubyArray` is a generic, so references throughout
       our codebase to the now "raw" type trigger warnings. In most cases we cannot
       actually resolve the issue, since the JRuby-provided methods for creating
       `RubyArray`s still return the raw type, so these have been suppressed.
    
    2. Deprecations:
       - `RubyString#intern19()` -> `RubyString#intern()`
       - `RubyString#downcase19(ThreadContext)` -> `RubyString#downcase(ThreadContext)`
       - `NativeException`: remove import & reference directly; suppress usage
         warnings
       - `RaiseException()`: migrate to equivalent non-deprecated methods wherever
         possible; in some cases where we are using this in conjunction with the
         also-deprecated `NativeException` to preserve java stacktraces, there
         seems to be no non-deprecated path forward, so these cases have been
         suppressed.
    
    3. Redundant Casts
       - Resolved
    
    * JRuby 9.2 bundler shenanigans (elastic#10266)
    
    * Revert "Revert "remove forced dependency on old bundler (elastic#9395)""
    
    This reverts commit bef9841.
    
    * plugin management: update internal bundler to 1.17.x APIs
    
    * deps: update dev dependency webmock to version compatible with JRuby 9.2
    
    * spec: update Pack fixture to include manticore version that doesn't conflict
    
    * build: update gradle to version that has Java 11 support
    
    * java11: resolve or suppress deprecation warnings
    
    * Remove superfluous flag opting into ParNew GC implementation
    
    When opting into CMS garbage collector with `XX:+UseConcMarkSweepGC`, the
    young generation collector ParNew has been the default since Java 8, making
    the `XX:+UseParNew` flag redundant; the flag was removed in Java 9, and
    should no longer be specified to work with modern Javas.
    
    https://bugs.openjdk.java.net/browse/JDK-8006478
    https://openjdk.java.net/jeps/214
    
    * spec: set thread name to example description for easier debugging
    
    * spec: prevent errors in testing specs by checking against skip list before using
    
    * no-op: remove use of `HashMap#computeIfAbsent` on single-threaded code
    
    > This method will, on a best-effort basis, throw a `ConcurrentModificationException`
    > if it is detected that the mapping function modifies this map during computation.
    >
    > -- https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/HashMap.html#computeIfAbsent(K,java.util.function.Function)
    
    * qa: by default, run integration against Elastic Stack 6.5.x
    
    To support development on Logstash on top of Java 11, default to testing
    against an Elastic Stack that is capable of running on Java 11.
    
    * qa: ignore deprecation warnings when comparing offline pack output
    
    * qa: add Java 9+ support to ChildProcess dev dependency
    
    this can safely be removed when the childprocess gem supports Java9+
    enkessler/childprocess#141
    
    * qa: allow connections to localhost in webmock
    
    * bump jrjackson version
    
    * fix filebeat integration tests
    
    * spec: ensure license compliance spec runs first
    
    The license compliance spec that validates the licenses of bundled
    plugins appears to not be compatible with the hooks that we inject
    into bundler for plugin management, and will fail in obscure ways
    when run after those hooks have been added. Since those hooks are
    not necessary for validating licenses, the easiest solution was to
    ensure that those specs run first, before the VM has been poluted.
    
    Since the gradle/junit/rspec bridge that is currently in place
    runs all specs in the same JVM, we also need to make sure that the
    rspec "world" is reset before a run, to ensure that it doesn't
    retain spec definitions from previous runs.
    
    Also updates the rake invocation, although I'm not sure it is used
    any more.
    yaauie committed Feb 5, 2019
    Configuration menu
    Copy the full SHA
    709678e View commit details
    Browse the repository at this point in the history