All Tests?

Uma das características mais presentes no nosso dia-a-dia de desenvolvimento é a interiorização de práticas de integração contínua. Todos temos o hábito de baixar para a própria máquina todos os códigos-fonte, no início do dia. Trabalhar sobre eles até que, ao final do dia, seja feito upload/commit das modificações. Sem erros, claro.

No entanto, acabamos descobrindo esses dias que algumas vezes a prática de subir para o servidor os novos códigos estava quebrando a regra de termos apenas códigos 100%. Nos cobramos mutuamente na retrospectiva, mas não tínhamos a detecção real do problema.

Eis que alguém resolveu dar uma olhada no AllTests e descobriu o real problema: nem todas as novas classes de teste estavam sendo adicinoadas lá. Com isso, alguns testes não estavam sendo executados, e erros não estavam sendo encontrados. Se uma solução rápida seria atualizar a suíte de teste, decidimos por uma ainda mais ágil: apagar a suíte.

Por mais que a decisão pareça radical, ela é simples: ao invés de mandar rodar o AllTests, usamos o botão direito em cima da fonte de código com os pacotes de teste e um "Run As..". Esse procedimento executa absolutamente todos os testes, no Eclipse. Agora, voltamos a ter certeza que o servidor está 100%.

Integração de Componentes PrimeFaces

Esses dois trechos parecem equivalentes, né?

Trecho 1:
 
<f:facet name="header">
#{gen['th.user']}
</f:facet>
<h:outputtext value="#{entry.user.name}"/>


Trecho 2:
 
<f:facet name="header">
<h:outputtext value="#{gen['th.user']}"/>
</f:facet>
<h:outputtext value="#{entry.user.name}"/>



Mas não são. O primeiro vai mostrar na tela direitinho. Mas não vai necessariamente integrar bem com outros componentes Primefaces, como o exportador de pdf. Essa é um exemplo das várias recomendações da maioria dos tutoriais de JSF: sempre que for escrever algo na tela, use um componente pra isso. No mínimo vai facilitar a integração.

Fica a dica.