<i18n dev> Using system tzdata

Keith Seitz keiths at redhat.com
Wed Aug 15 09:52:30 PDT 2007


Ping?

Iris Garcia wrote:
> Hi, Keith.
> 
> The timezone information files are owned by the i18n team
> (i18n-dev at 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 at 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);




More information about the i18n-dev mailing list