Arquivo de propriedades do Tomcat

Definição
O arquivo de propriedades do Tomcat, localizado, por padrão em conf/catalina.properties pode ser usado para definir propriedades que serão referenciadas em outros arquivos de configuração tais como server.xml e context.xml e também nos arquivos de definição de contexto das aplicações em META-INF/context.xml, no diretório de cada aplicação.

Como em todos os arquivos de propriedades de Java, este arquivo é composto de um conjunto de pares atributo=valor. Por padrão, já existe uma grande quantidade de propriedades definidas neste arquivo que são utilizadas pelo próprio Tomcat e devem ser preservadas.

Para que as alterações tenham efeito é necessário reiniciar o Tomcat!


Criação de novas propriedades
Em arquivos de propriedades, linhas começadas por # são consideradas comentários e ignoradas. Pode-se adicionar propriedades e comentários em qualquer parte do arquivo, mas é recomendável fazê-lo ao final e comentar de forma clara a finalidade de cada uma das propriedades.
Podemos, por exemplo, armazenar neste arquivo o usuário e senha de um banco de dados, evitando a necessidade de distribuir estas informações no arquivo war da aplicação, o que é potencialmente inseguro. Obviamente é necessário restringir cuidadosamente o acesso ao arquivo catalina.properties neste caso.

Exemplo: armazenar a senha do banco de dados
Suponha que uma aplicação Web utiliza uma fonte de dados (DataSource) para criar conexões a um banco de dados Oracle e que a definição desta fonte de dados está no arquivo META-INF/context.xml da aplicação. Como não desejamos que estes dados sejam colocados diretamente no arquivo, vamos defini-los no arquivo catalina.properties e referenciá-los no arquivo de contexto da aplicação. Inicialmente devemos editar o arquivo catalina.properties e incluir as propriedades desejadas:
# Credenciais para conexão ao banco de dados Oracle
oracle.db.username=login
oracle.db.password=senha

Adicionando as duas linhas acima ao arquivo de propriedades, definimos as propriedades oracle.db.username com o valor login e oracle.db.password com o valor senha.

Podemos utilizar estas propriedades no arquivo META-INF/context.xml:
<?xml version”1.0″ encoding=”UTF-8″?>
  <Context antiJARLocking=”true” path=”/exemplo”>
<Resource auth=”Container”
driverClassName=”orcale.jdbc.OracleDriver”
logAbandoned=”true”
maxActive=”10″
maxIdle=”3″
maxWait=”10000″
name=”jdbc/exemplo”
username=”${oracle.db.username}”
password=”${oracle.db.password}”
removeAbandoned=”true”
type=”javax.sql.DataSource”
url=”jdbc:oracle:thin:@my.oracle.db.com:1521:scott”
validationQuery=”select * from dual” />
</Context>

Com isto, quando a aplicação for carregada, o Tomcat substituirá os respectivos valores.