O Guilherme Matos enviou uma outra dica de como lidar com o problema do hor�rio de ver�o do Java.
======================================================================
Gostaria de complementar a solu��o proposta pelo Ben�cio, pois
tivemos o mesmo problema aqui na BCP em SP.
A solu��o proposta pelo Ben�cio � perfeitamente aplic�vel para novos sistemas, principalmente, se o startRule e o endRule utilizados forem informados via arquivos de configura��o.
Aqui na BCP, por exemplo, onde j� tinhamos uma s�rie de aplica��es implementadas em Java, distribu�das em diversos servidores, e em diversas plataformas (NT, 2000, Solaris, HP-UX, Linux, etc.) a solu��o de modificar as classes que manipulam data/hora torna-se invi�vel. Nosso administrador Unix, o Valdemar Demori, encontrou uma solu��o criativa, que consiste em atualizar uma classe da JRE, a TimeZoneData.java do pacote java.util.
Por quest�es de portabilidade, a JVM n�o emprega as tabelas de
defini��o de DST (Daylight Saving Time) do sistema operacional, que existem nos sistemas Unix, por exemplo. A defini��o default do per�odo de hor�rio de ver�o � realizada no c�digo da classe java.util.TimeZoneData. A solu��o aplicada na BCP foi a seguinte (utilizamos uma JRE vers�o 1.3.0_04):
* Baixamos os fontes da JRE utilizada;
* Atualizamos a classe TimeZoneData, modificando os par�metros dos m�todos setStartRule e setEndRule dos timezones America/Sao Paulo e
Brazil/East para o novo per�odo (como na explica��o do Ben�cio);
* Compilamos a classe java.util.TimeZoneData;
* Criamos uma c�pia da lib rt.jar com a nova vers�o da
java.util.TimeZoneData e uma c�pia da lib rt.jar original;
* Atualizamos a lib rt.jar original com a vers�o atualizada;
Como a maior parte dos nossos ambientes s�o mantidos com a mesma
vers�o de JRE, apenas copiamos a lib rt.jar atualizada para os outros
servidores (diret�rio JAVA_HOME/jre/lib) com a mesma vers�o de JRE. O �nico impacto nas aplica��es existentes foi o de reinici�-las para que a classe atualizada fosse recarregada.
Esta solu��o foi aplicada sobre JREs 1.3.x; pesquisando os fontes da JRE 1.4.x notamos que n�o existe mais a classe java.util.TimeZoneData, mas um diret�rio zi (Zone Info) em JAVA_HOME/jre/lib que cont�m arquivos bin�rios, como jre/lib/America/Sao_Paulo. Deixo uma quest�o para continuar
com esta thread: � prov�vel que o mapeamento dos per�odos de DST estejam
definidos nos arquivos do diret�rio zi na JRE 1.4.x; neste sentido, como podemos reconfigurar um timezone na JRE 1.4.x ?
[]'s
Guilherme R. Matos Jr
Consultor Web
BCP Telecomunica��es S/A
================================================================================
[dicas-list] circula diariamente com pequenas dicas sobre a plataforma Java e �
mais um servi�o da Sociedade de Usu�rios Java - http://www.soujava.org.br
*** SouJava - Fortalecendo a Comunidade Java Brasileira! ***
- Para contribuir com uma dica, envie um e-mail para [EMAIL PROTECTED]
- Participe de outras listas de discuss�o sobre a linguagem Java.
Saiba mais em http://www.soujava.org.br/lista.htm
--------------------------------------------------------------------------------
- Para assinar este boletim: mailto:dicas-list-subscribe@;soujava.org.br
- Para cancelar sua assinatura: mailto:dicas-list-unsubscribe@;soujava.org.br
- Dicas anteriores: http://www.mail-archive.com/dicas-list%40soujava.org.br
- Para discutir sobre as dicas, acesse o Mundo OO (http://www.mundooo.com.br)
