Using system tzdata
Hi, The JRE contains pre-compiled timezone information files. As an OS vendor, Red Hat would prefer not to respin or repackage the JRE every time tzdata changes somewhere in the world. In order to facilitate this, we're in the process of modifying our tzdata package to include pre-compiled zoneinfo files for use with JREs. I have created a patch to the openjdk JRE that would optionally use these files instead of the pre-packaged ones in the JRE. We would really like to solicit advice/comments about how to get something like this accepted upstream so that other distros can use this. Keith
Hi, Keith. The timezone information files are owned by the i18n team (i18n-dev@openjdk.java.net). They should be able to provide you with guidance. Thanks, iris
Date: Wed, 08 Aug 2007 12:40:08 -0700 From: Keith Seitz <keiths@redhat.com> Subject: Using system tzdata
Hi,
The JRE contains pre-compiled timezone information files. As an OS vendor, Red Hat would prefer not to respin or repackage the JRE every time tzdata changes somewhere in the world.
In order to facilitate this, we're in the process of modifying our tzdata package to include pre-compiled zoneinfo files for use with JREs. I have created a patch to the openjdk JRE that would optionally use these files instead of the pre-packaged ones in the JRE.
We would really like to solicit advice/comments about how to get something like this accepted upstream so that other distros can use this.
Keith
--- openjdk/hotspot/src/os/linux/vm/os_linux.cpp.keiths 2007-08-01 10:21:19.000000000 -0700 +++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp 2007-08-01 10:21:36.000000000 -0700 @@ -376,6 +376,10 @@ } }
+ // Use the system zoneinfo files, if present + SystemProperty* sp = Arguments::system_properties(); + Arguments::PropertyList_add (&sp, + "java.zoneinfo.dir", "/usr/share/zoneinfo/java"); #undef malloc #undef getenv #undef EXTENSIONS_DIR --- openjdk/j2se/src/share/classes/sun/util/calendar/ZoneInfoFile.java.keiths 2007-08-01 12:31:03.000000000 -0700 +++ openjdk/j2se/src/share/classes/sun/util/calendar/ZoneInfoFile.java 2007-08-01 12:29:44.000000000 -0700 @@ -1021,10 +1021,18 @@ byte[] buffer = null;
try { - String homeDir = (String) AccessController.doPrivileged( + String zi_dir = (String) AccessController.doPrivileged( + new sun.security.action.GetPropertyAction("java.zoneinfo.dir")); + File dir = null; + if (zi_dir != null) + dir = new File(zi_dir); + if (dir == null || !dir.exists() || !dir.isDirectory()) { + String homeDir = (String) AccessController.doPrivileged( new sun.security.action.GetPropertyAction("java.home")); - final String fname = homeDir + File.separator + "lib" + File.separator - + "zi" + File.separator + fileName; + zi_dir = homeDir + File.separator + "lib" + File.separator + + "zi"; + } + final String fname = zi_dir + File.separator + fileName; buffer = (byte[]) AccessController.doPrivileged(new PrivilegedExceptionAction() { public Object run() throws IOException { File file = new File(fname);
participants (2)
-
Iris Garcia
-
Keith Seitz