elastic / elastic/logstash

Use Java 8 Time instead of Joda in LS and any plugins.

Open
#7,149 14 comments 3 reactions 0 assignees View on GitHub
JRuby 9K
Dominant language
Java
Stars
14.9k
Forks
3.5k
Avg merge
1d 4h
Merged PRs (30d)
88

Description

- JRuby 9k now uses Java 8 Time classes but it still bundles Joda at an old version (2.8.2)
- The Java Event leverages the JRuby provided Joda libs.
- The Date Filter does too.
- The version of Joda in JRuby is quite old and does not have the latest tz info data and this cannot be updated using the TZUpdater tool fom Oracle.
- Times from some timezones e.g. Venezuela will be converted to UTC incorrectly because the Venezuelans changed from -4:30 to -4:00 in 2016.
- Tests that compare a Timestamp with a Ruby Date can fail as the Ruby Time holds 6 digits of fractional seconds but Joda based Timestamp only holds 3 digits of fractional seconds.

Contributor guide

Open the contributing guide

Research direction

Start by tracing Joda usage in the Java Event and Date Filter, then inspect the tests comparing timestamps with Ruby Dates and timezone conversions. Done means those components use Java 8 Time classes, current timezone data is handled correctly, and the fractional-second and timezone cases pass.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, ruby
Domain
backend
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.