TimeZone Updater Tool/Project, where would we put it? (original) (raw)
Andrew Leonard andrew_m_leonard at uk.ibm.com
Thu Nov 28 15:48:20 UTC 2019
- Previous message: TimeZone Updater Tool/Project, where would we put it?
- Next message: TimeZone Updater Tool/Project, where would we put it?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Thanks for all the input. So i'm going to set the "scene" on what we currently have and how it currently works, and a possible proposal:
Background: Code is loosely based off of our bespoke IBM JDK 6/7/8 TimeZone Updater, but has been updated and extended to support OpenJDK8+ JDKs.
Current Architecture:
- The tool comes in two phases:
- A Build by a Vendor|OpenJDK is done to produce a "jtzuYYYY[a-z].zip" that contains the latest IANA data built into a "rearguard" "tzdb.dat" along with the tzupdater client tool.
- The "end user" who wants to patch their tzdb, simply downloads the "jtzuYYYY[a-z].zip" from the Vendor|OpenJDK unzips and runs the tool to patch their chosen JDKs...
Current features and limitations:
- Supports only "rearguard" format tzdb.dat, but this is then compatible with JDK8,11,13+
- tzupdater tool searchs for JDKs based on a "signature" recognition (layout of files...), but it only has to recognize "is it JDK8", "is it JDK11+" ?
- Various modes of operation to tzupdater client tool, for specifying specific JDK/JRE location(s), either via cmdline or using a GUI.
Possibilities: For (1) maybe we could:
- Contribute all the tzupdater code to the JDK (jdk/jdk) project under the folder "src/tzupdater"
- Add configure option --build-latest-tzupdater
- When specified it:
- upgrades the IANA files with the latest from IANA
- once tzdb.dat has been built as part of gendata target, the src/tzupdater is built which produces "build//images/tzupdater/jtzuYYYY[a-z].zip" (2):
- Currently the built "jtzuYYYY[a-z]/zip" can be applied by the end user to any jdk8+ based on current features and "rearguard" compatibility.
Thoughts? Thanks Andrew
Andrew Leonard Java Runtimes Development IBM Hursley IBM United Kingdom Ltd internet email: andrew_m_leonard at uk.ibm.com
From: Stephen Colebourne <scolebourne at joda.org> To: jdk-dev <jdk-dev at openjdk.java.net> Date: 26/11/2019 15:10 Subject: [EXTERNAL] Re: TimeZone Updater Tool/Project, where would we put it? Sent by: "jdk-dev" <jdk-dev-bounces at openjdk.java.net>
To take the discussion in a different direction, the original intention of JSR-310 was that time-zone updates should be delivered as modular jar files. Developers would just use their favorite tooling (maven/gradle etc) to add the new tzdb jar file to the module path, and hey-presto the tzdb data would be updated.
Early versions of JSR-310 code had all of this working, although I'm not certain whether it still does. (JSR-310 was introduced before the module system, so there is likely to be some work needed). The versioning system does still exist though. ie. the JDK can have multiple versions of the tzdb loaded and pick the latest. See ZoneRulesProvider and TzdbZoneRulesProvider for the code that may or may not need tweaking (it uses ServiceLoader).
A tool that patches the JDK installation seems rather an old fashioned approach compared to a modular jar one. That said, there are issues around data other than the tzdb rules themselves, eg. the name of a zone, that might trip up a modular jar file approach.
Does anyone else think a modular jar file approach is worth pursuing instead?
Stephen
On Mon, 25 Nov 2019 at 10:03, Andrew Leonard <andrew_m_leonard at uk.ibm.com> wrote:
Hi there, Not had a lot of interest in contributing this yet, so was going to ask the question a different way. If we were to contribute it where would we put it? - As part of the JDK project? - Create its own project? and associated mercurial repo? - Add to an existing other tooling project? Thanks Andrew Andrew Leonard Java Runtimes Development IBM Hursley IBM United Kingdom Ltd internet email: andrewmleonard at uk.ibm.com Unless stated otherwise above: IBM United Kingdom Limited - Registered in England and Wales with number 741598. Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
Unless stated otherwise above: IBM United Kingdom Limited - Registered in England and Wales with number 741598. Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
- Previous message: TimeZone Updater Tool/Project, where would we put it?
- Next message: TimeZone Updater Tool/Project, where would we put it?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]